gpt4 book ai didi

jquery - select2 和 jquery 验证无法正常工作

转载 作者:行者123 更新时间:2023-12-01 02:05:26 26 4
gpt4 key购买 nike

尝试在 select2 上使用验证,但存在一些问题:

  • 错误消息将会显示,但在输入有效条目后不会删除。

  • 我正在加载一个工作正常的初始值...但是,验证器无法识别该值并告诉我它无效...我必须手动输入相同的值,然后进行验证,但仍然没有删除显示其有效的错误类/消息。

形式:

<div class="col-md-12 margin-bottom-30 form-group">
<div class="input-modal-group">
<label for="vedit-filter" class="f-14"><b>filter :</b></label>
<input id="vedit-filter" type="text" name="settings[filter]" class="form-control select2"/>
</div>
</div>
<input id="filter_default" type="hidden" name="settings[original]" value="<?php echo escapeStr($result[filter]); ?>"/>

js:

// get the default filter           
var default_filter = $("#filter_default").val();

$("#vedit-filter").select2({
//placeholder: "Select or enter...",
allowClear: true,
multiple: false,
ajax: {
dataType: 'json',
url: '/process/get_filter_list.php',
results: function (data) {
return {results: data};
}
},
createSearchChoice:function(term, data) {
if ($(data).filter(function() {
return this.text.localeCompare(term)===0; }).length===0) {
return {id:term, text:term};
}
},
initSelection : function (element, callback) {
var obj= {id:default_filter, text:default_filter};
callback(obj);
}
});

$('#filters-edit').validate({
errorElement: 'span', //default input error message container
errorClass: 'help-block', // default input error message class
focusInvalid: false, // do not focus the last invalid input
rules: {
'settings[filter]': {
required: true
}
},

messages: {
'settings[filter]': {
required: "Filter is required."
}
},

highlight: function (element) { // hightlight error inputs
$(element)
.closest('.form-group').addClass('has-error');
},

unhighlight: function (element) { // un-hightlight error inputs
$(element)
.closest('.form-group').removeClass('has-error');
},

errorPlacement: function (error, element) {
error.insertAfter(element.closest('.input-modal-group'));
},

// ajax submit
submitHandler: function (form) {

...submit stuff below

最佳答案

默认情况下,字段验证仅由这些事件触发(对于 type="text" 字段)...

  • onfocusout,当用户离开字段时(仅验证该字段)

  • onkeyup,当用户在字段中键入时(仅验证字段)

  • onclick,当用户单击submit按钮时(验证整个表单)

如果您需要在以编程方式更改字段值后以编程方式触发验证,则需要调用 the .valid() method在那个领域。它将有效地触发类似于上述事件的验证。

$('#myField').valid();  // validates just field element with id="myField"

$('#myForm').valid(); // validates the whole form

因此,您需要在 select2 中找到一个在值更改时触发的方法,并将 .valid() 放入其中。看起来像 the change event就是您所需要的。

$("#vedit-filter").select2({
// your options here
}).on('change', function() {
$(this).valid();
});

关于jquery - select2 和 jquery 验证无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26046183/

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