2012-08-29 24 views
11

Bởi một số trình tạo biểu mẫu, một danh sách các phần tử được hiển thị trên một trang và tất cả chúng đều có các xác nhận hợp lệ trên chúng. Khi tôi tìm trong nguồn HTML, tôi thấy một cái gì đó như thế này:Vô hiệu hóa xác thực cho một phần tử với jQuery Unobtrusive Validation

<input type="text" id="email" name="email" data-val-required="No valid email address!" data-val="true"> 

Tôi cần bằng cách nào đó để kích hoạt/vô hiệu xác thực cho phần tử như vậy. Tôi đã cố bật/tắt thuộc tính data-val, bằng cách đặt thành false và sau đó quay lại true. Nhưng dường như nó không đáp lại điều đó. Việc xác nhận luôn ở đó!

Bất cứ ai cũng có ý tưởng làm thế nào tôi có thể bật/tắt tính hợp lệ trên các trường nhất định theo cách năng động?

Trả lời

37

Tôi thực sự tìm thấy một giải pháp phù hợp với nhu cầu của tôi tốt hơn. Tôi có thể làm như sau:

$(function() { 
    var settngs = $.data($('form')[0], 'validator').settings; 
    settngs.ignore = ".ignore"; 
}); 

Và với điều đó tôi có thể 'chuyển đổi' bất kỳ yếu tố mà tôi muốn bằng cách thêm hoặc loại bỏ các classname ignore từ một phần tử.

+1

Giải pháp thực sự tuyệt vời! :) –

+7

lưu ý rằng để giữ hành vi xác thực jquery mặc định, bạn nên đặt 'settings.ignore =": hidden, .ignore "' Cá nhân tôi muốn thêm ': disabled' cũng là –

+1

Nguồn: http://weblogs.asp.net /imranbaloch/archive/2011/07/13/overriding-unobtrusive-client-side-validation-settings-in-asp-net-mvc-3.aspx – WolfyUK

13

Tôi nghĩ điều này sẽ hữu ích.

<div class="editor-field"> 
     @{ Html.EnableClientValidation(false); } 
     @Html.TextBoxFor(m => m.BatchId, new { @class = "k-textbox" }) 
     @{ Html.EnableClientValidation(true); } 
</div> 
+1

Đây phải là câu trả lời được chấp nhận! 2 năm gần đây hơn – JavierIEH

+0

@JavierIEH khác Câu trả lời này có thể mới hơn và có thể đã hoạt động cho bạn, nhưng nó chỉ hoạt động ở thời gian hiển thị trang. Bất cứ ai muốn bật/tắt các trình xác nhận hợp lệ trên phía máy khách sẽ vẫn cần sử dụng câu trả lời trước đó. – mikeschuld

+0

Câu trả lời hay có thể khác nhau tùy thuộc vào vấn đề người dùng có –

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