Legg til egendefinert JavaScript til et skjema
Obs!
Fra og med 12. oktober 2022 er Power Apps-portaler Power Pages. Mer informasjon: Microsoft Power Pages er nå tilgjengelig (blogg)
Vi overfører og slår snart sammen Power Apps-portaldokumentasjonen med Power Pages-dokumentasjonen.
Både trinnoppføringene standardskjemaet og flertrinnsskjemaet inneholder et felt kalt Egendefinert JavaScript, som kan brukes til å lagre JavaScript-koden, slik at du kan forbedre eller endre skjemaets visuelle visning eller funksjon.
Den egendefinerte JavaScript-blokken blir lagt til nederst på siden rett foran det avsluttende form-kodeelementet.
Skjemafelt
Inndata-ID-en for HTML-kode for et tabellfelt settes til det logiske navnet på attributtet. Dette gjør det enkelt å velge felt, angi verdier eller foreta andre endringer på klientsiden, ved hjelp av jQuery.
$(document).ready(function() {
$("#address1_stateorprovince").val("Saskatchewan");
});
Viktig
Hvis du legger til en valgkolonne i et modelldrevet skjema som skal brukes i et flertrinnsskjematrinn, eller i et grunnleggende skjema, vises det på portalsiden som en rullegardinserverkontroll. Hvis du bruker egendefinert JavaScript til å legge til flere verdier i kontrollen, fører dette til en melding om ugyldig tilbakepostering eller tilbakeargument på siden.
Ekstra feltvalidering på klientsiden
Noen ganger må du kanskje tilpasse feltvalideringen i skjemaet. Dette eksemplet tvinger brukeren til å angi en e-postadresse bare hvis det andre feltet for foretrukket kontaktmetode er satt til E-post.
Obs!
Feltvalidering på klientsiden støttes ikke i et delrutenett.
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));
}
Generell validering
Når du klikker på Neste/Send inn, utføres en funksjon kalt entityFormClientValidate. Du kan utvide denne metoden for å legge til egendefinert valideringslogikk.
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));
}