Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/455.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 选择ize.js和jQuery验证_Javascript_Jquery_Validation_Selectize.js - Fatal编程技术网

Javascript 选择ize.js和jQuery验证

Javascript 选择ize.js和jQuery验证,javascript,jquery,validation,selectize.js,Javascript,Jquery,Validation,Selectize.js,我正在尝试验证一个表单,该表单使用选择和插件进行验证 我不能让它工作。脚本验证输入字段,但不验证选择: <form id="test" method="post" action="#"> Name: <input name="name" type="text"> <select name="person" id="select-beas

我正在尝试验证一个表单,该表单使用选择和插件进行验证

我不能让它工作。脚本验证输入字段,但不验证选择:

<form id="test" method="post" action="#">
Name: <input name="name" type="text">

<select name="person" id="select-beast" class="demo-default" placeholder="Select">
    <option value="">Select...</option>
    <option value="1">First</option>
    <option value="2">Second</option>n>
</select>

    <button type="submit" class="btn btn-primary col-md-12 col-lg-12">Go</button>
</form>

原因是jQuery.validation插件在默认情况下进行验证时会忽略所有隐藏的元素

并且Selectize.js将隐藏给定的jQuery对象,因此您的name字段将运行validate,而person字段将不运行

解决方案,请参考以下要点:

我正在使用

忽略:':隐藏:不[class~=selectized],:隐藏>.selectized、.selectize控件。selectize输入'


这对我来说很有用。

上面提供的答案不适用于selectize.js v0.12.3或更高版本

这是由于从refreshValidityState函数中的select中删除了所需的属性-请参阅

一个快速修复方法是在validation options对象的rules数组中添加所需的选择

例如:

var validator = $("#form").validate({
            ignore: ':hidden:not([class~=selectized]),:hidden > .selectized, .selectize-control .selectize-input input',
            rules: {
                "select-name-here": "required",
                "select-name-here2": "required"
            }
        });

谢谢你的帮助。谢谢你的帮助,需要更多的支持吗?$test.validate{ignore:IT_WILL_HERE};
var validator = $("#form").validate({
            ignore: ':hidden:not([class~=selectized]),:hidden > .selectized, .selectize-control .selectize-input input',
            rules: {
                "select-name-here": "required",
                "select-name-here2": "required"
            }
        });