ฉันมีแบบฟอร์มที่มีหลายฟิลด์ที่ฉันกำลังตรวจสอบความถูกต้อง (บางอันมีวิธีการเพิ่มสำหรับการตรวจสอบที่กำหนดเอง) กับปลั๊กอินการตรวจสอบ jQuery ที่ยอดเยี่ยมของJörn Zaeffere คุณจะหลีกเลี่ยงการตรวจสอบความถูกต้องด้วยการควบคุมการส่งที่ระบุได้อย่างไร (กล่าวอีกนัยหนึ่งการตรวจสอบไฟไหม้ด้วยอินพุตการส่งบางอย่าง แต่ไม่ได้ทำการตรวจสอบความถูกต้องกับผู้อื่น) สิ่งนี้จะคล้ายกับ ValidationGroups ที่มีการควบคุมตัวตรวจสอบ ASP.NET มาตรฐาน
สถานการณ์ของฉัน:
มันมาพร้อมกับ ASP.NET WebForms แต่คุณสามารถเพิกเฉยได้ถ้าคุณต้องการ อย่างไรก็ตามฉันใช้การตรวจสอบความถูกต้องเป็น "คำแนะนำ": กล่าวอีกนัยหนึ่งเมื่อส่งแบบฟอร์มการตรวจสอบความถูกต้องจะเริ่ม แต่แทนที่จะแสดงข้อความ "จำเป็นต้องใช้" คำแนะนำ "จะแสดงสิ่งที่อยู่ในบรรทัดของคุณ" พลาดเขตข้อมูลต่อไปนี้ .... คุณต้องการดำเนินการต่อหรือไม่ " ณ จุดนั้นในคอนเทนเนอร์ข้อผิดพลาดจะมีปุ่มส่งอีกอันที่สามารถกดได้ซึ่งจะเพิกเฉยต่อการตรวจสอบและส่งต่อไป วิธีการหลีกเลี่ยงแบบฟอร์ม. validate () สำหรับการควบคุมปุ่มนี้และยังโพสต์?
ตัวอย่างซื้อและขายบ้านที่http://jquery.bassistance.de/validate/demo/multipart/ช่วยให้สิ่งนี้สามารถเข้าถึงลิงก์ก่อนหน้าได้ แต่ทำได้โดยการสร้างวิธีการที่กำหนดเองและเพิ่มลงในเครื่องมือตรวจสอบความถูกต้อง ฉันต้องการที่จะไม่ต้องสร้างวิธีการที่กำหนดเองซ้ำฟังก์ชันการทำงานอยู่แล้วในปลั๊กอินการตรวจสอบ
ต่อไปนี้เป็นเวอร์ชั่นย่อของสคริปต์ที่สามารถใช้งานได้ทันทีที่ฉันมีอยู่ตอนนี้:
var container = $("#<%= Form.ClientID %> div.validationSuggestion");
$('#<%= Form.ClientID %>').validate({
errorContainer: container,
errorLabelContainer: $("ul",container),
rules: {
<%= YesNo.UniqueID %>: { required: true },
<%= ShortText.UniqueID %>: { required: true } // etc.
},
messages: {
<%= YesNo.UniqueID %>: 'A message.',
<%= ShortText.UniqueID %>: 'Another message.' // etc.
},
highlight: function(element, errorClass) {
$(element).addClass(errorClass);
$(element.form).find("label[for=" + element.id + "]").addClass(errorClass);
$(element.form).find("label[for=" + element.id + "]").removeClass("valid");
},
unhighlight: function(element, errorClass) {
$(element).removeClass(errorClass);
$(element.form).find("label[for=" + element.id + "]").removeClass(errorClass);
$(element.form).find("label[for=" + element.id + "]").addClass("valid");
},
wrapper: 'li'
});