如何解决jQuery ui自动完成功能错误地检测到页面加载的变化
我有一组字段是自动完成字段。设置每个变量以检测何时进行了更改,以及最终值是否与任何建议都不匹配,它将字段置于错误状态并要求用户选择现有项。这是代码:
$.each($(".autocomplete"),function () {
$(this).autocomplete({
source: $(this).attr("autocomplete-url"),autoFocus: true,//Just press enter to select top item
minLength: 0,response: function (event,ui) {
if (ui.content.length == 1) {
$(this).val(ui.content[0].value);
$(this).removeClass("is-invalid").next("span").remove(); //valid value,remove error
}
},change: function (event,ui) { //if detects a string that was not suggested (meaning does not exist in DB),clear value and show not valid
if (!(ui.item)) { //don't close the dropdown - causes ui.item to be undefined
$(this).val("");
$(this).addClass("is-invalid").after("<span class='invalid-feedback'><strong>Please choose an existing " + $(this).attr('name') + ".</strong></span>");
}
}
});
});
这在一种情况下工作正常,除非在一种情况下-如果表单中的其他地方有错误,并且页面重新加载时出现另一种表单错误(自动完成字段中没有错误),则自动完成中最初选择的项目会瞬间显示,那么change事件将运行并删除该值,并使该字段处于错误状态,并显示消息“请选择现有项目”。
有没有办法告诉自动完成功能,它在页面重新加载时包含的值实际上是有效的,并且没有更改-它与页面重新加载之前的有效值相同?还是有人提出其他建议,例如即使重新加载页面时也抑制自动完成更改,然后在用户选择其他项目的情况下再次启用它?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。