Aturan Kustom dan atribut data
Anda dapat membuat aturan khusus dan melampirkannya ke elemen menggunakan data
atribut menggunakan sintaksdata-rule-rulename="true";
Jadi untuk memeriksa apakah setidaknya satu dari sekelompok kotak centang dicentang:
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");
Dan Anda juga dapat mengganti pesan aturan (yaitu: Atleast 1 harus dipilih) dengan menggunakan sintaks data-msg-rulename="my new message"
.
CATATAN
Jika Anda menggunakan data-rule-rulename
metode ini maka Anda harus memastikan bahwa nama aturan semua huruf kecil. Ini karena fungsi validasi jQuery dataRules
berlaku .toLowerCase()
untuk membandingkan dan spesifikasi HTML5 tidak mengizinkan huruf besar.
Contoh Kerja
$.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>