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


Додавання нестандартного коду JavaScript до форми

Примітка

З 12 жовтня 2022 року портали Power Apps перейменовано на Power Pages. Додаткова інформація: Microsoft Power Pages тепер у загальному доступі (блоґ)
Незабаром документацію порталів Power Apps буде перенесено та об’єднано з документацією Power Pages.

Як запис кроку базової форми, так і запис кроку багатокрокової форми містить поле з іменем Нестандартний код 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));
}

Див. також