Поділитися через


Додавання нестандартного коду 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));
}

Див. також