MVC 表单数据验证和 jquery 验证

问题描述

我正在为 TextBoxFor 和 DropDownListFor 使用 MVC 数据验证,并且它工作得很好。但我也想为复选框列表添加 jquery 验证有没有办法添加它?在我的 document.ready 中 我调用函数 ready validate();添加了 validator.addMethod 但它没有触发。

 <button type="submit" class="btn btn-primary px-4 float-right">Save</button>


 $(document).ready(function () {
validate();
}

var validate = function () {
            $.validator.addMethod("sources",function (value,elem,param) {
                if ($("[name='chkProduct']:checkBox:checked").length > 0) {
                    return true;
                } else {
                    return false;
                }
            },"You must select at least one!");

解决方法

尝试使用您的复选框,如下所示:

<fieldset id="checkArray">
<input type="checkbox" name="chk[]" value="Apples" />

<input type="checkbox" name="chk[]" value="Bananas" />
</fieldset>

然后像这样通过 Jquery 进行验证:

var atLeastOneIsChecked = $('#checkArray:checkbox:checked').length > 0;
//there should be no space between identifier and selector

// or,without the container:

var atLeastOneIsChecked = $('input[name="chk[]"]:checked').length > 0;

然后您可以使用 atLeastOneIsChecked 来验证是否有任何选中的框(true 或 false)并随心所欲。