แชร์ผ่าน


เพิ่ม JavaScript แบบกำหนดเองในฟอร์ม

เรกคอร์ดของขั้นตอน ฟอร์มพื้นฐาน และ ฟอร์มแบบหลายขั้นตอน มีฟิลด์ที่ชื่อ JavaScript แบบกำหนดเอง ซึ่งสามารถใช้ในการจัดเก็บโค้ด JavaScript เพื่ออนุญาตให้คุณสามารถขยายหรือปรับเปลี่ยนการแสดงผลภาพของฟอร์มหรือฟังก์ชันได้

บล็อกของ JavaScript แบบกำหนดเองจะถูกเพิ่มไปยังด้านล่างของเพจก่อนการปิดองค์ประกอบแท็กของฟอร์ม

ฟิลด์แบบฟอร์ม

รหัสขาเข้า HTML ของฟิลด์ตารางถูกตั้งเป็นชื่อตรรกะของการกระจาย การเลือกฟิลด์ การตั้งค่า หรือการจัดการด้านไคลเอ็นต์อื่นทำได้ง่ายด้วย jQuery

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

สำคัญ

การเพิ่มคอลัมน์ตัวเลือกลงในฟอร์มแบบจำลองเพื่อใช้ในขั้นตอนของฟอร์มแบบหลายขั้นตอนหรือฟอร์มพื้นฐานจะปรากฏบนเว็บเพจเป็นตัวควบคุมเซิร์ฟเวอร์แบบดรอปดาวน์ การใช้ JavaScript ที่กำหนดเองเพื่อเพิ่มค่าเพิ่มเติมให้กับตัวควบคุมจะส่งผลให้เกิดข้อความ "อาร์กิวเมนต์ตอบกลับภายหลังหรือการติดต่อกลับไม่ถูกต้อง" ในการส่งหน้า

การตรวจสอบฟิลด์ทางด้านไคลเอ็นต์เพิ่มเติม

บางครั้งคุณอาจต้องกำหนดการตรวจสอบความถูกต้องของฟิลด์ในแบบฟอร์มเอง ตัวอย่างนี้บังคับให้ผู้ใช้ระบุอีเมล ก็ต่อเมื่อฟิลด์อื่นสำหรับวิธีที่ต้องการของผู้ติดต่อถูกตั้งค่าเป็น อีเมล

หมายเหตุ

การตรวจสอบฟิลด์ฝั่งไคลเอ็นต์ไม่ได้รับการสนับสนุนใน Sub-grid

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

ดูเพิ่มเติม