การตรวจสอบ jQuery ไม่เป็นการรบกวนคืออะไร


148

ฉันรู้ว่าปลั๊กอินการตรวจสอบ jQuery คืออะไร ฉันรู้ว่าไลบรารีการตรวจสอบ jQuery Unobtrusive สร้างโดย Microsoft และรวมอยู่ในกรอบงาน ASP.NET MVC แต่ฉันไม่สามารถหาแหล่งออนไลน์เดียวที่อธิบายว่ามันคืออะไร อะไรคือความแตกต่างระหว่างไลบรารีการตรวจสอบ jQuery มาตรฐานและรุ่น "ไม่เป็นการรบกวน"


2
การตรวจสอบที่ไม่ยุ่งยากจะเพิ่มแอททริบิวต์ data-val -... ใน HTML ดังนั้นคุณสามารถอ่านการตรวจสอบได้แม้ในซอร์ส HTML
Preben Huybrechts

3
ฉันเชื่อว่าคำตอบสำหรับคำถามของคุณอธิบายไว้ที่นี่: bradwilson.typepad.com/blog/2010/10/…เขาอธิบายความแตกต่างระหว่างสิ่งที่เกิดขึ้นเมื่อเปิดหรือปิดการรบกวน
Tommy

คำตอบ:


123

แบรดวิลสันมีบทความที่ดีทั้งคู่ในการตรวจสอบไม่สร้างความรำคาญและอาแจ็กซ์สร้างความรำคาญ
มันแสดงให้เห็นเป็นอย่างดีในวิดีโอ Pluralsightนี้ในหัวข้อ "AJAX และ JavaScript"

โดยทั่วไปก็เป็นเพียงการตรวจสอบจาวาสคริปต์ที่ไม่ก่อให้เกิดมลพิษของรหัสที่มาด้วยตัวของมันเองการตรวจสอบรหัส สิ่งนี้ทำได้โดยใช้data-คุณลักษณะใน HTML


คุณช่วยบอกเราเกี่ยวกับการปรับปรุงที่ทำใน mvc3 สำหรับการตรวจสอบที่ไม่เป็นการรบกวนได้หรือไม่?
wwcdwdcw

ลิงก์ไปยังวิดีโอเสีย
Misha Moroshko

ขอบคุณ @MishaMoroshko สำหรับการชี้ว่า ฉันไม่พบทางเลือกอื่นใน Pluralsight ในตอนนี้ดังนั้นฉันจึงลบลิงก์ออก ฉันจะแก้ไขโพสต์อีกครั้งทันทีที่ฉันมีตัวแทน
bertl

ตัวอย่างโค้ดบางอย่างน่าจะดี เนื่องจากการตอบกลับของคุณไม่เป็นประโยชน์จริง ๆ คนส่วนใหญ่ที่มาที่นี่กำลังมองหาวิธีแก้ไขปัญหาอย่างรวดเร็วและตัวอย่างโค้ดไม่เชื่อมโยงไปยังบทความพวกเขาสามารถทำลายช่วงเวลาพวกเขามักจะอ้างอิงที่ดีหลังจากที่คุณเห็น ตัวอย่างรหัส ฉันชอบ 2 คำตอบต่อไป
โอเว่น

107

ด้วยวิธีที่ไม่เป็นการรบกวน:

  • คุณไม่จำเป็นต้องเรียกใช้เมธอด validate ()
  • คุณระบุข้อกำหนดโดยใช้แอตทริบิวต์ data (data-val, data-val-required ฯลฯ )

Jquery ตรวจสอบตัวอย่าง :

<input type="text" name="email" class="required">
<script>
        $(function () {
            $("form").validate();
        });
</script>

Jquery ตรวจสอบตัวอย่างที่ไม่สร้างความรำคาญ :

<input type="text" name="email" data-val="true" 
data-val-required="This field is required.">  

<div class="validation-summary-valid" data-valmsg-summary="true">
    <ul><li style="display:none"></li></ul>
</div>

4
ขอบคุณฉันพยายาม Ctrl-F เพื่อหาการโทร valdiate () ในรหัสที่ฉันต้องใช้งาน สงสัยว่าทำไมฉันหาไม่ได้
bio595

2
ใช่ "ไม่เป็นการรบกวน" ดูเหมือนจะเป็นคำสละสลวยสำหรับ "ไม่สามารถค้นพบ" ได้ที่นี่
ReactingToAngularVues

18

สำหรับการชี้แจงนี่เป็นตัวอย่างที่แสดงรายละเอียดเพิ่มเติมเกี่ยวกับการตรวจสอบแบบฟอร์มโดยใช้ jQuery Validation Validation Unobtrusive

ทั้งสองใช้ JavaScript ต่อไปนี้กับ jQuery:

  $("#commentForm").validate({
    submitHandler: function(form) {
      // some other code
      // maybe disabling submit button
      // then:
      alert("This is a valid form!");
//      form.submit();
    }
  });

ความแตกต่างที่สำคัญระหว่างสองปลั๊กอินคือคุณลักษณะที่ใช้สำหรับแต่ละวิธี

การตรวจสอบ jQuery

เพียงใช้คุณสมบัติต่อไปนี้:

  • ตั้งจำเป็นถ้าจำเป็น
  • กำหนดประเภทสำหรับการจัดรูปแบบที่เหมาะสม (อีเมลและอื่น ๆ )
  • ตั้งค่าคุณสมบัติอื่น ๆ เช่นขนาด (ความยาวต่ำสุด ฯลฯ )

นี่คือแบบฟอร์ม ...

<form id="commentForm">
  <label for="form-name">Name (required, at least 2 characters)</label>
  <input id="form-name" type="text" name="form-name" class="form-control" minlength="2" required>
  <input type="submit" value="Submit">
</form>

การตรวจสอบ jQuery ไม่เป็นการรบกวน

จำเป็นต้องใช้แอตทริบิวต์ข้อมูลต่อไปนี้:

  • data-msg-required = "จำเป็นต้องมี"
  • ข้อมูลกฎต้อง = "จริง / เท็จ"

นี่คือแบบฟอร์ม ...

<form id="commentForm">
  <label for="form-x-name">Name (required, at least 2 characters)</label>
  <input id="form-x-name" type="text" name="name" minlength="2" class="form-control" data-msg-required="Name is required." data-rule-required="true">
  <input type="submit" value="Submit">
</form>

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

ข้อมูลอ้างอิง: - การตรวจสอบ jQuery: https://jqueryvalidation.org/documentation/


7

การตรวจสอบความถูกต้อง jQuery Native ไม่เป็นการรบกวนคือชุดของส่วนขยายตัวช่วย ASP.Net MVC HTML สิ่งเหล่านี้ใช้ประโยชน์จากการสนับสนุนดั้งเดิมของ jQuery Validation สำหรับการตรวจสอบความถูกต้องซึ่งขับเคลื่อนโดยคุณลักษณะข้อมูล HTML 5 Microsoft จัดส่ง jquery.validate.unobtrusive.js กลับมาพร้อม MVC 3 ซึ่งเป็นวิธีการใช้การตรวจสอบความถูกต้องของแบบจำลองข้อมูลกับฝั่งไคลเอ็นต์โดยใช้การรวมกันของ jQuery Validation และแอตทริบิวต์ข้อมูล HTML 5 (นั่นคือส่วน "ไม่เป็นการรบกวน")

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.