เพิ่ม 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));
}