gpt4 book ai didi

jquery - 如何使用 jquery 验证插件验证 select2 元素?

转载 作者:行者123 更新时间:2023-12-03 22:35:59 25 4
gpt4 key购买 nike

我使用 select2 3.5.2 和 jqueryvalidation 1.13.1 。我可以使用验证插件“突出显示”方法将错误类添加到 select2 元素,但是当我选择一个值时,我无法删除该错误类。我该如何解决这个问题?

HTML

<form id="test" class="frm">
<div>
<input type="text" name="name" />
</div>
<div>
<label for="singleselect"></label>
<select class="sl" id="singleselect" name="singleselect">
<option></option>
<option value="val1">Val-1</option>
<option value="val2">Val-2</option>
</select>
</div>

<div>
<label for="multipleselect"></label>
<select class="sl" id="multipleselect" name="multipleselect" multiple="multiple">
<option></option>
<option value="val1">Val-1</option>
<option value="val2">Val-2</option>
</select>
</div>

<button class="btn">Submit</button>
</form>

JS

$(document).ready(function () {

$('.sl').select2({
placeholder:'Select'
})

$.validator.setDefaults({
ignore: []
});

$('#test').validate({
errorElement: 'span',
errorClass: 'error',
rules: {
singleselect:'required',
multipleselect:'required',
name:'required'
},

highlight: function (element, errorClass, validClass) {

var elem = $(element);

elem.addClass(errorClass);

},
unhighlight: function (element, errorClass, validClass) {
var elem = $(element);

if(elem.hasClass('sl')) {
elem.siblings('.sl').find('.select2-choice').removeClass(errorClass);
} else {
elem.removeClass(errorClass);
}
}
});

});

https://jsfiddle.net/8Lyfa3k2/6/

最佳答案

由于原来的 select 元素被 Select2 插件隐藏,jQuery Validate 插件无法再找到任何触发事件来在值更改时自动触发验证。

您只需创建一个自定义处理程序,以便在值发生变化时使用 .valid() 方法以编程方式触发验证...

$('select').on('change', function() {  // when the value changes
$(this).valid(); // trigger validation on this element
});

演示:https://jsfiddle.net/8Lyfa3k2/4/

<小时/>

您的取消突出显示功能显然已损坏。这似乎效果更好......

unhighlight: function (element, errorClass, validClass) {
var elem = $(element);
elem.removeClass(errorClass);
}

演示 2:https://jsfiddle.net/8Lyfa3k2/5/

关于jquery - 如何使用 jquery 验证插件验证 select2 元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29947041/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com