Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.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
使用jQuery验证插件和Select2重置表单?_Jquery_Jquery Validate_Jquery Select2 - Fatal编程技术网

使用jQuery验证插件和Select2重置表单?

使用jQuery验证插件和Select2重置表单?,jquery,jquery-validate,jquery-select2,Jquery,Jquery Validate,Jquery Select2,我正在使用jQuery验证来验证我的表单。表单内部有标签选择,我的选择使用select2jQuery。我在清除“使我的选择2更改必填字段”时遇到问题。如何使用validate和select2一起工作正常 我的代码: $(document).ready(function () { //validate form $(".form_required").validate({ highlight: function (element, errorClass, validClass) {

我正在使用jQuery验证来验证我的表单。表单内部有标签选择,我的选择使用
select2
jQuery。我在清除“使我的
选择2
更改必填字段”时遇到问题。如何使用validate和select2一起工作正常

我的代码:

$(document).ready(function () {
//validate form
$(".form_required").validate({
    highlight: function (element, errorClass, validClass) {
        $(element).parents('.form-control').removeClass('has-success').addClass('has-error');     
    },
    unhighlight: function (element, errorClass, validClass) {
        $(element).parents('.form-control').removeClass('has-error').addClass('has-success');
    },
    errorPlacement: function (error, element) {
        if (element.hasClass('select2') && element.next('.select2-container').length) {
            error.insertAfter(element.next('.select2-container'));
        } else {
            error.insertAfter(element);
        }
    }
});

$('.select2').select2({
    allowClear: true,
    placeholder: ""
}).on("change", function (e) {
    $(this).valid();
});
});

function clear(){
   $("#myformHeader select").val('').trigger('change');
}
我的HTML:

<form name="myformHeader" id="myformHeader" class="form-horizontal form_required">
    <select type="text" name="ddl" id="ddl" class="form-control select2" required>
       <!-- many option -->
    </select>
    <select type="text" name="ddl2" id="ddl2" class="form-control select2" required>
       <!-- many option -->
    </select>
    <button  type="button" onclick="clear()">Reset</button>
</form>

重置
当点击按钮重置时,需要这样显示。我不想把这件事说清楚

如果您想选择2作为可选项,只需删除其必需属性;)

否则,如果你想有一个值或为空,这就可以了

在执行之前。验证()

然后将其添加到验证({})


dll是您选择的名称,而不是id顺便说一句(在您的情况下,名称和id是相同的)

您的问题与Select2无关,因为如果没有它,您会遇到相同的问题。在
required
字段上触发
.valid()
不会清除验证消息。。。这只是重申了它们

要清除错误的形式,则需要使用:

然后,要清除表单数据,请使用:


按钮:

<button type="button" id="reset">Reset</button>

我不能这样用。因为我有很多选择。属性名称I,m用于不同的其他情况您的意思是有多个select2使用相同的名称,但只有一些必须验证??多个select不使用相同的名称。。我不能使用相同的属性名..只需为每个名称声明一条规则,除非您有100个select2;)规则:{ddl:{atlestoneelement:true},ddl2:{atlestoneelement:true}}我无法理解这句话:“当我从它的make my select2 change required字段中清除时,我有问题”你的问题与select2无关,因为没有它,你也会有同样的问题。在
required
字段上触发
.valid()
不会清除验证消息。。。这只是重申了它们。
rules: {
    ddl: {
        atLeastOneElement: true
    }
}
$("#myformHeader").validate().resetForm()
document.getElementById("myformHeader").reset();

or

$("#myformHeader")[0].reset();
<button type="button" id="reset">Reset</button>
$('#reset').on('click', function () {
    var form = $("#myformHeader");
    form.validate().resetForm();   // clear out the validation errors
    form[0].reset();               // clear out the form data
});