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 (将#修改为@)