jquery validate check at least one checkbox

前端 未结 9 1961
情书的邮戳
情书的邮戳 2020-12-02 08:32

I have something like this:

9条回答
  •  温柔的废话
    2020-12-02 09:07

    The validate plugin will only validate the current/focused element.Therefore you will need to add a custom rule to the validator to validate all the checkboxes. Similar to the answer above.

    $.validator.addMethod("roles", function(value, elem, param) {
       return $(".roles:checkbox:checked").length > 0;
    },"You must select at least one!");
    

    And on the element:

    
    

    In addition, you will likely find the error message display, not quite sufficient. Only 1 checkbox is highlighted and only 1 message displayed. If you click another separate checkbox, which then returns a valid for the second checkbox, the original one is still marked as invalid, and the error message is still displayed, despite the form being valid. I have always resorted to just displaying and hiding the errors myself in this case.The validator then only takes care of not submitting the form.

    The other option you have is to write a function that will change the value of a hidden input to be "valid" on the click of a checkbox and then attach the validation rule to the hidden element. This will only validate in the onSubmit event though, but will display and hide messages at the appropriate times. Those are about the only options that you can use with the validate plugin.

    Hope that helps!

提交回复
热议问题