Добавяне на потребителски JavaScript към формуляр
Както записите на стъпки в основните формуляри, така и тези в многостъпковите формуляри съдържат поле с име Персонализиран JavaScript, което може да се използва за съхранение на код на JavaScript, което да ви позволи да разширите или промените визуалното показване или функцията на формуляра.
Персонализираният блок на JavaScript ще бъде добавен към долната част на страницата преди затварянето на елемента на етикет на формуляра.
Полета на формуляр
ИД за въвеждане на HTML на поле на таблица е зададен на логическото име на атрибута. Избор на поле, задаването на стойности или други манипулации от страна на клиента чрез jQuery.
$(document).ready(function() {
$("#address1_stateorprovince").val("Saskatchewan");
});
Важно
Добавянето на колона за избор към управляван от модел формуляр, който да се използва в стъпка от многостъпков фомуляр или основен формуляр, ще се появи на страницата на уеб страницата като падаща сървърна контрола. Използването на персонализиран JavaScript за добавяне на допълнителни стойности към контролата ще доведе до съобщение „Невалиден аргумент за обратно изпращане или обратно извикване“ при изпращането на страницата.
Допълнително валидиране на поле от страна на клиент
Понякога може да имате нужда да персонализирате валидирането на полета във формуляра. Този пример кара потребителя да укаже имейл само ако другото поле за „предпочитан метод на контакт“ е зададено на Имейл.
Бележка
Валидирането на поле от страна на клиента не се поддържа в подмрежа.
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));
}
Обща проверка
При щракване върху бутона Напред/Подаване се изпълнява функция, наречена entityFormClientValidate. Можете да разширите този метод, за да добавите персонализирана логика за проверка.
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));
}