Quy tắc tùy chỉnh và thuộc tính dữ liệu
Bạn có thể tạo quy tắc tùy chỉnh và đính kèm quy tắc đó vào một phần tử bằng data
cách sử dụng cú phápdata-rule-rulename="true";
Vì vậy, để kiểm tra nếu ít nhất một trong số các nhóm hộp kiểm tra được chọn:
data-rule-oneormorechecked
<input type="checkbox" name="colours[]" value="red" data-rule-oneormorechecked="true" />
addMethod
$.validator.addMethod("oneormorechecked", function(value, element) {
return $('input[name="' + element.name + '"]:checked').length > 0;
}, "Atleast 1 must be selected");
Và bạn cũng có thể ghi đè thông điệp của quy tắc (ví dụ: Phải chọn Atleast 1) bằng cách sử dụng cú pháp data-msg-rulename="my new message"
.
GHI CHÚ
Nếu bạn sử dụng data-rule-rulename
phương thức thì bạn sẽ cần đảm bảo tên quy tắc là tất cả chữ thường. Điều này là do chức năng xác thực jQuery dataRules
áp dụng .toLowerCase()
để so sánh và thông số HTML5 không cho phép viết hoa.
Ví dụ làm việc
$.validator.addMethod("oneormorechecked", function(value, element) {
return $('input[name="' + element.name + '"]:checked').length > 0;
}, "Atleast 1 must be selected");
$('.validate').validate();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.14.0/jquery.validate.min.js"></script>
<form class="validate">
red<input type="checkbox" name="colours[]" value="red" data-rule-oneormorechecked="true" data-msg-oneormorechecked="Check one or more!" /><br/>
blue<input type="checkbox" name="colours[]" value="blue" /><br/>
green<input type="checkbox" name="colours[]" value="green" /><br/>
<input type="submit" value="submit"/>
</form>