Afegir JavaScript personalitzat

El registre Pas de formulari avançat conté un camp que s'anomena JavaScript personalitzat que es pot utilitzar per emmagatzemar el codi JavaScript perquè es pugui ampliar o modificar la visualització o la funció visual del formulari.

El bloc personalitzat de JavaScript s'afegirà a la part inferior de la pàgina davant de l'element de l'etiqueta del formulari de tancament.

Camps de formulari

L'identificador d'entrada HTML d'un camp de taula es defineix com a nom lògic de l'atribut. Això fa que la selecció d'un camp, de valors de configuració o la manipulació d'altres clients sigui fàcil amb jQuery.

$(document).ready(function() {
   $("#address1_stateorprovince").val("Saskatchewan");
});

Important

Si afegiu una columna d'opcions al formulari basat en model per utilitzar-la en un pas de formulari avançat o es mostrarà un formulari bàsic a la pàgina del portal com a control de servidor desplegable. L'ús de JavaScript personalitzat per afegir valors addicionals al control tindrà com a conseqüència un missatge "Argument de tornar a publicar o de resposta no vàlid" a l'enviament de la pàgina.

Validació dels camps de clients addicional

A vegades podeu necessitar personalitzar la validació de camps al formulari. L'exemple següent demostra com afegir un validador personalitzat. Aquest exemple obliga l'usuari a especificar un correu electrònic només si un altre camp del mètode de contacte preferit està establert en Correu electrònic.

Nota

La validació de l'àmbit del client no s'admet en una subquadrícula.

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'>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);
 
         // Wire-up the click event handler of the validation summary link
         $("a[href='#emailaddress1_label']").on("click", function () { scrollToAndFocus('emailaddress1_label','emailaddress1'); });
      });
   }(window.jQuery));
}

Validació general

Si feu clic al botó Següent/Envia s'executa una funció que s'anomena webFormClientValidate. Podeu ampliar aquest mètode per afegir una lògica de validació personalitzada.

if (window.jQuery) {
   (function ($) {
      if (typeof (webFormClientValidate) != 'undefined') {
         var originalValidationFunction = webFormClientValidate;
         if (originalValidationFunction && typeof (originalValidationFunction) == "function") {
            webFormClientValidate = 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));
}

Consulteu també