我有一个使用jQuery Validation进行表单验证并将BsMultiSelect作为更好的multiselect字段的网站。问题是BsMultiSelect用自己的select替换了div元素,我不知道如何验证。

我有这个HTML代码:

<form method="post" id="server-form" class="form-responsive m-auto">
    <div class="form-group">
        <label for="categories">
            Categories
            <span class="text-danger">*</span>
        </label>
        <select name="categories[]" id="categories" class="form-control"  multiple="multiple">
            <option value="1">1</option>
            <option value="2">2</option>
            <option value="3">3</option>
        </select>
    </div>

    <input type="submit" value="Submit" id="submit" class="btn btn-primary">
</form>


而这个JavaScript:

$(function(){
        $('#categories').bsMultiSelect();

        $('#server-form').validate({
            rules:{
                'categories[]':{
                    required: true,
                    maxlength: 3
                }
            }
        });
    });


在没有BsMultiSelect的情况下工作,但没有。有没有办法使这些插件相互兼容?

最佳答案

1)BsMultiSelect有自己的github项目:https://github.com/DashboardCode/BsMultiSelect

2)向其添加自定义验证的选项之一是获取BsMultiSelectvalidationApi-它模拟HTMLEntityvalidationApi。

var bsMultiSelect = $('#myselect').BsMultiSelect();
bsMultiSelect.validationApi.setCustomValidity("error message") // or set to "" to remove the message


然后,您需要将其与jquery验证集成:监听其事件并添加或删除消息。

09-20 12:51