Plugin xác thực sẽ chỉ xác thực phần tử hiện tại/tiêu điểm.Trước khi bạn cần phải thêm quy tắc tùy chỉnh vào trình xác thực để xác thực tất cả các hộp kiểm. Tương tự như câu trả lời ở trên.
$.validator.addMethod("roles", function(value, elem, param) {
if($(".roles:checkbox:checked").length > 0){
return true;
}else {
return false;
}
},"You must select at least one!");
Và trên phần tử:
<input class='{roles: true}' name='roles' type='checkbox' value='1' />
Bên cạnh đó, bạn sẽ có khả năng tìm việc hiển thị thông báo lỗi, không hoàn toàn đầy đủ. Chỉ 1 hộp kiểm được tô sáng và chỉ hiển thị 1 tin nhắn. Nếu bạn nhấp vào một hộp kiểm riêng biệt khác, hộp kiểm này sau đó sẽ trả lại giá trị cho hộp kiểm thứ hai, hộp kiểm gốc vẫn được đánh dấu là không hợp lệ và thông báo lỗi vẫn hiển thị, mặc dù biểu mẫu hợp lệ. Tôi luôn phải sử dụng để chỉ hiển thị và ẩn các lỗi trong bản xác thực case.The này, sau đó chỉ xử lý việc không gửi biểu mẫu.
Tùy chọn khác bạn có là viết một hàm sẽ thay đổi giá trị của đầu vào bị ẩn thành "hợp lệ" trên hộp kiểm và sau đó đính kèm quy tắc xác thực vào phần tử bị ẩn. Tuy nhiên, điều này sẽ chỉ xác thực trong sự kiện onSubmit, nhưng sẽ hiển thị và ẩn thư vào các thời điểm thích hợp. Đó là những tùy chọn duy nhất mà bạn có thể sử dụng với plugin xác thực.
Hy vọng điều đó sẽ hữu ích!
Câu trả lời này phải lỗi thời hoặc một cái gì đó. Bạn chỉ có thể sử dụng quy tắc 'required' miễn là tất cả các hộp kiểm trong nhóm có cùng' tên'. Xem [câu trả lời đúng thực] (http://stackoverflow.com/a/4120320/594235) và bản trình diễn này: http://jsfiddle.net/AsuyC/ – Sparky
Sparky - Cảm ơn bạn đã chỉ đúng hướng. – Nanu
Có gì với tên lớp đó? '{roles: true}' không có cách nào hợp lệ cho một lớp ... – bradlis7