2015-11-24 12 views
8

Tôi đang sử dụng jQuery Mẫu Validator Plugin ..Cách sử dụng jQuery.validate() nhưng dựa vào các cảnh báo xác thực gốc của Chrome?

Tôi có một mẫu với HTML5 yêu cầu các thuộc tính gắn cờ, tương tự như dưới đây:

<form role="form" id="the-form"> 
    <input name="name" id="name" required> 
</form> 

Tôi đã jQuery xác nhận tốt:

$("#the-form").validate(); 

sau đó, một lần nhấp vào nút kích hoạt kiểm tra tính hợp lệ trước khi tiếp tục đến các nội dung khác:

//Request Button clicked  
$("#request-btn").on("click", function() { 
    if ($('#the-form').valid()){ 
     ...everything good... move along 
    } 
}); 

Tôi có logic đang hoạt động hoàn hảo. Tuy nhiên, bây giờ tôi đã bắt đầu sử dụng Plugin Xác thực jQuery, các cảnh báo xác thực không còn được chạy qua trình duyệt nữa. Tôi vẫn đang đào sâu vào nó, nhưng tôi đoán plugin có các lớp cảnh báo riêng có thể được định dạng.

Có cờ nào để buộc jQuery cho phép cảnh báo trình duyệt gốc bật lên thay vì của riêng nó không?

Thông báo xác thực jQuery mới đang phá vỡ bố cục biểu mẫu trên màn hình nơi cảnh báo của Chrome hoạt động hoàn hảo.

EDIT: Ngay sau khi công bố này, tôi đã kiểm tra việc cảnh báo, và đây là những gì hiện đang bị cắm vào:

<label id="name-error" class="error" for="name">This field is required.</label> 

Trong trường hợp như với Chrome, cho tất cả tôi có thể nói, được xử lý bởi Chrome ở cấp ứng dụng.

EDIT thứ hai Ứng dụng này sẽ dành riêng cho Chrome, vì vậy tôi không lo lắng về khả năng tương thích giữa trình duyệt và trình duyệt cũ. Tôi thực sự muốn Chrome lo lắng về việc xác thực ở cấp trường và chỉ cần sử dụng jQuery .valid() để kiểm tra tính hợp lệ của toàn bộ biểu mẫu trước khi di chuyển.

+2

Tôi đã tạm thời nâng cấp điều này ít nhất vì nó được định dạng tốt, không giống như bất kỳ câu hỏi nào khác từ người dùng mới ..... – nicael

+1

Uhh .. cảm ơn? Tôi đoán .. – eko

+0

jQuery xác nhận hợp lệ thêm thuộc tính 'novalidate' vào phần tử biểu mẫu để xác thực HTML5 (trong trình duyệt) không khởi động chút nào. Có rất nhiều trình duyệt/phiên bản trình duyệt không hỗ trợ xác thực HTML5 và thông báo xác thực sẽ khác với trình duyệt đối với trình duyệt. Tôi sẽ gắn bó với jQuery xác nhận. – adaam

Trả lời

0

Nhờ phản ứng adaam, tôi đã có thể sử dụng phương pháp checkValidity cho HTML5 Hạn chế Validation:

$('#request-btn').bind('click',function(){ 
    if ($('#the-form')[0].checkValidity()) { 
     ...do the magic stuff here... move along... 
    } 
}) 

Bạn chỉ có thể sử dụng HTML5 Hạn chế Validation API checkValidity phương pháp a la jsfiddle.net/E6jhE/5 và cắt bỏ sự cần thiết cho jQuery xác nhận hoàn toàn. (Tôi đoán bạn đang làm việc trên một nhiều trang hình thức sử dụng một <form> thẻ duy nhất nếu bạn muốn kiểm tra tính hợp lệ cho mỗi giai đoạn mặc dù tôi có thể nhận được khi kết thúc sai trái của thanh) - adaam 34 mins ago

Các vấn đề liên quan