2012-05-29 23 views
5

Sản phẩm tôi đang làm việc để sử dụng xác thực JQuery với MVC3 hoạt động sau hậu trường. Tôi có một lĩnh vực mà tôi chuyển đổi là chỉ đọc (dựa trên có hay không một giá trị thả xuống là> 0) hay không.Làm cách nào để tắt xác thực jquery trên các trường chỉ đọc?

Bí quyết là, trường này cần phải được yêu cầu khi nó không phải là chỉ đọc, và cần phải gửi mà không có lỗi khi nó là chỉ đọc, có hay không có dữ liệu.

Tôi nên làm như thế nào?

Trả lời

14
$.validator.setDefaults({ 
    ignore: ':hidden, [readonly=readonly]' 
}); 

Giá trị mặc định cho tham số ignore":hidden". Bằng cách đặt lại mặc định bằng cách sử dụng mã trên, bạn đảm bảo rằng xác thực jquery vẫn không hoạt động trên các phần tử biểu mẫu ẩn, nhưng cũng không hoạt động trên các phần tử có thuộc tính readonly="readonly".

Trả lời ý kiến ​​

Đó là âm thanh kỳ lạ, bạn có thể phải đăng một số mã để được giúp đỡ nhiều hơn nữa. Một điều bạn có thể thử để loại bỏ các lỗi xác nhận là để tự xác nhận các hình thức khi bạn chuyển đổi các thuộc tính chỉ đọc, giống như có lẽ đây:

$('#the_text_box').attr('readonly', 'readonly'); 
$.validator.setDefaults(':hidden'); 
$('form').valid(); 
$.validator.setDefaults(':hidden, [readonly=readonly]'); 

Bạn cũng có thể làm điều gì đó tương tự trong thời gian tải trang ban đầu để tránh ngay lập tức thông báo lỗi xác thực.

$.validator.setDefaults(':hidden, [readonly=readonly]'); 
$('form').valid(); 
+0

Cảm ơn bạn, điều này dường như đang thực hiện thủ thuật để cho phép xác thực phía khách hàng không từ chối trang. Đồng thời, mặc dù, khi tôi tải trang lần đầu tiên, trình xác thực ngay lập tức hiển thị thông báo rằng chúng không hợp lệ cho tất cả các trường bắt buộc trống chỉ đọc. Đồng thời, dường như không xóa cài đặt không hợp lệ khi tôi thay đổi trường thành chỉ đọc thông qua JavaScript. Tôi có thiếu cái gì đó, hoặc đây chỉ là một cái gì đó cụ thể để thực hiện sản phẩm của tôi về điều này? – Brisbe42

+0

Chỉ để giải thích những gì đã xảy ra, điều này đã làm việc cho tôi - đến một điểm. Mã của tôi có một số tính năng ẩn khiến nó bắt đầu trang với các lỗi xác thực đã được áp dụng phía máy chủ. Tôi đã phải đi với một giải pháp mà ảnh hưởng đến những điều này. Các .valid() trên các mục, kết hợp với lật cờ chỉ đọc, làm việc cho xác nhận phía máy khách. Cảm ơn đã giúp đỡ! – Brisbe42

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