Добавление пользовательского кода 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));
}