Aracılığıyla paylaş


Özel JavaScript'i bir forma ekleme

Hem temel form hem de çok adımlı form adımı kayıtları, formun görsel görünümünü veya işlevini genişletmenize veya değiştirmenize olanak tanımak için JavaScript kodunu depolamak üzere kullanılabilen Özel JavaScript olarak adlandırılan bir alan içerir.

Özel JavaScript kod bloğu, sayfanın sonuna, kapanış form etiketi öğesinden hemen önce yerleştirilecektir.

Form alanları

Bir tablo alanının HTML girişi kimliği, özniteliğin mantıksal adı olarak ayarlanır. Alan seçme, değer ayarlama veya diğer istemci tarafı değişiklikleri jQuery ile kolayca yapma.

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

Önemli

Çok adımlı form adımında veya temel formda kullanılmak üzere model temelli forma bir seçim sütunu eklendiğinde sütun, web sayfasında açılan sunucu denetimi olarak görüntülenir. Denetime ek değerler eklemek için özel JavaScript kullanıldığında sayfa gönderiminde "Geçersiz geri gönderme veya geri arama bağımsız değişkeni" iletisi görüntülenir.

Ek istemci tarafı alan doğrulaması

Bazı durumlarda form üzerindeki alan doğrulamalarını özelleştirmeniz gerekebilir. Bu örnek yalnızca, diğer alanda tercih edilen iletişim yöntemi E-Posta olarak ayarlanmışsa kullanıcıyı bir e-posta adresi belirtmeye zorlar.

Not

İstemci tarafı alan doğrulaması bir alt ızgarada desteklenmiyor.

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));
}

Genel doğrulama

Sonraki/Gönder düğmesine tıklandığında, entityFormClientValidate adlı bir işlev yürütülür. Bu yöntemi, özel doğrulama mantığı eklemek için genişletebilirsiniz.

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));
}

Ayrıca bkz.