Javascript 如何为multiselect box实现jQuery验证规则?

Javascript 如何为multiselect box实现jQuery验证规则?,javascript,jquery-validate,multi-select,Javascript,Jquery Validate,Multi Select,这是我的html选择框(选项将由ajax调用提供),带有multiselect函数和验证 <select id="chapterId" name="chapter[]" class="multiselect-ui form-control" multiple="multiple"></select> $('#chapterId').multiselect({ includeSelectAllOption: true }); var $valid

这是我的html选择框(选项将由ajax调用提供),带有multiselect函数和验证

<select id="chapterId" name="chapter[]" class="multiselect-ui form-control" multiple="multiple"></select>

$('#chapterId').multiselect({
        includeSelectAllOption: true
    });

var $validator = $("#orderPaper").validate({
            rules: {
                 'chapter[]': {required: true, min: 1},
            },
            messages: {
                'chapter[]': {required: "Please select chapter"},
            }
});

$(“#chapterId”)。多选({
includeSelectAllOption:true
});
var$validator=$(“#订单”).validate({
规则:{
'第[]章:{必需:true,min:1},
},
信息:{
'章节[]':{必填:“请选择章节”},
}
});
此外,还正确地包括multiselect.js。 每次选择或未选择“请选择章节”天气章节时,它都会显示错误。 我还检查了章节的选择是否正确,我还可以获得所选章节ID。
但是每次都会显示jquery错误。

您只需要使用自定义验证规则。试试这个

var $validator = $("#orderPaper").validate({
    rules: {
        'chapter[]': {required: true, needsSelection: true},
    },
    messages: {
        'chapter[]': {required: "Please select chapter", needsSelection: "Please select chapter"},
    }
});
$.validator.addMethod("needsSelection", function (value, element) {
    var count = $(element).find('option:selected').length;
    return count > 0;
});

您是否尝试在jquery验证程序定义中使用chapter而不是chapter[]是的,@fxlaroix,但之后它不会验证chapter字段。也许您可以检查jquery的validate()演示页面,但我看到它们直接在标记输入中使用属性。。。2美分;)因此,看起来您正在使用插件来更改multi-select元素的外观。如果是这种情况,则原始的
select
将被隐藏,并且不会被验证。您将不得不花时间构建一个更好、更完整的演示,包括足够的HTML来重现这个问题。请修复您问题中的代码,并包括一个JSFIDLE演示。经过一些测试,我发现它只与ajax加载选项有关。哦,是的,谢谢@Virendra Jadeja。它对我有用:)。