Pridanie vlastného JavaScript do formuláru
Záznamy krokov Základné formuláre aj formuláre s viacerými krokmi obsahujú pole s názvom Vlastný JavaScript, ktoré môže byť použité na uloženie kódu JavaScript umožňujúceho rozšíriť alebo upraviť vizuálne zobrazenie alebo funkcie formulára.
Vlastný blok JavaScript sa pridá na spodnú časť stránky priamo pred uzatvárací prvok značky formulára.
Polia formulára
Vstupné ID HTML poľa tabuľky je nastavené na logický názov atribútu. jQuery tak umožňuje jednoduché označovanie poľa, nastavovanie hodnôt alebo ďalšie manipulácie na strane klienta.
$(document).ready(function() {
$("#address1_stateorprovince").val("Saskatchewan");
});
Dôležité
Pridanie stĺpca výberu do formulára riadeného modelom, ktorý sa má použiť v kroku formulára s viacerými krokmi alebo základného formulára, sa zobrazí na webovej stránke ako rozbaľovací serverový ovládací prvok. Použitie vlastného kódu JavaScript na pridanie ďalších hodnôt do ovládacieho prvku bude mať za následok správu „Neplatný argument postback alebo callback“ pri odoslaní stránky.
Ďalšie overenie poľa na strane klienta
Niekedy budete musieť prispôsobiť overenie polí formuláru. Tento konkrétny príklad núti používateľa zadať e-mail, iba v prípade, že iné pole pre preferovaný spôsob kontaktu je nastavená na E-mail.
Poznámka
Overenie poľa na strane klienta nie je podporovaný vo vedľajšej mriežke.
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));
}
Všeobecné overenie
Po kliknutí na tlačidlo Ďalej/Odoslať sa spustí funkcia s názvom entityFormClientValidate. Môžete rozšíriť tento spôsob na pridanie vlastnej logiky overovania.
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));
}