Dodaj własny JavaScript do formularza
Rekordy kroku formularze podstawowe i formularze obejmujące wiele kroków zawiera pole o nazwie Niestandardowy JavaScript, które może służyć do przechowywania kodu JavaScript, co pozwoli rozszerzyć lub zmodyfikować wyświetlacz lub funkcję formularza.
Niestandardowy blok kodu JavaScript zostanie dodany u dołu strony tuż przed zamknięciem elementu karty formularza.
Pola formularza
Identyfikator danych wejściowych HTML pola tabeli został ustawiony na logiczną nazwę atrybutu. Wybieranie pola, ustawienie wartości lub inne manipulacje wykonywane przez klienta może być łatwo wykonywanie dzięki jQuery.
$(document).ready(function() {
$("#address1_stateorprovince").val("Saskatchewan");
});
Ważne
Dodanie kolumny wyboru do formularza opartego na modelu, który ma być używany w kroku formularza obejmującego wiele kroków lub formularza podstawowego, będzie wyświetlane na stronie jako formant serwera menu rozwijanego. Użycie niestandardowego języka JavaScript w celu dodania dodatkowych wartości do formantu spowoduje komunikat „Nieprawidłowy argument wywołania zwrotnego lub ogłaszania zwrotnego” podczas przesyłania strony.
Dodatkowe sprawdzanie poprawności pola po stronie klienta
Czasami może być konieczne dostosowanie sprawdzania poprawności pól w formularzu. Ten przykład zmusza użytkownika do podania adresu e-mail tylko wtedy, gdy inne pole dla preferowanej metody kontaktu ustawiono na E-mail.
Uwaga
Sprawdzanie poprawności po stronie klienta pole nie jest obsługiwane w podsiatce.
if (window.jQuery) {
(function ($) {
$(document).ready(function () {
if (typeof (Page_Validators) == 'undefined') return;
// Create new validator
var newValidator = document.createElement('span');
newValidator.style.display = "none";
newValidator.id = "emailaddress1Validator";
newValidator.controltovalidate = "emailaddress1";
newValidator.errormessage = "<a href='#emailaddress1_label' referencecontrolid='emailaddress1 ' onclick='javascript:scrollToAndFocus(\"emailaddress1 _label\",\" emailaddress1 \");return false;'>Email is a required field.</a>";
newValidator.validationGroup = ""; // Set this if you have set ValidationGroup on the form
newValidator.initialvalue = "";
newValidator.evaluationfunction = function () {
var contactMethod = $("#preferredcontactmethodcode").val();
if (contactMethod != 2) return true; // check if contact method is not 'Email'.
// only require email address if preferred contact method is email.
var value = $("#emailaddress1").val();
if (value == null || value == "") {
return false;
} else {
return true;
}
};
// Add the new validator to the page validators array:
Page_Validators.push(newValidator);
});
}(window.jQuery));
}
Ogólne sprawdzanie poprawności
Po kliknięciu przycisku Dalej/Prześlij, wykonywana jest funkcja entityFormClientValidate. Możesz rozszerzyć tę metodę, aby dodać niestandardową logikę sprawdzania poprawności.
if (window.jQuery) {
(function ($) {
if (typeof (entityFormClientValidate) != 'undefined') {
var originalValidationFunction = entityFormClientValidate;
if (originalValidationFunction && typeof (originalValidationFunction) == "function") {
entityFormClientValidate = function() {
originalValidationFunction.apply(this, arguments);
// do your custom validation here
// return false; // to prevent the form submit you need to return false
// end custom validation.
return true;
};
}
}
}(window.jQuery));
}