我已经实现了AutoComplete文本框,它正在按预期工作。
目前如果在建议中找到“无匹配”,则显示没有结果作为建议但是当他们点击该值时应用于tex框
var error = ["No match"];
if (results.length == 0) {
responseFn(error);
}
else {
responseFn(results);
}
结果是要在autosuggest中显示的匹配项列表。如果结果为空,则建议说“不匹配”但我不希望用户选择所以我在if (results.length == 0) {
$("#txtNewAttributes").blur(function () {
$("#" + txtbxId).val("");
})
但它会清除所有场景中的文本框,即使找到匹配的项目也是如此。我该如何实现呢?
如果找不到匹配项,我需要清除TextBox。
答案 0 :(得分:2)
之前我也面临同样的问题。
在jquery.autocomplete中,有不同的回调函数,如focus,change。
如果使用下面的回调函数找不到匹配项,则可以清除文本框。
change: function (e, u) {
//If the No match found" u.item will return null, clear the TextBox.
if (u.item == null) {
//Clear the AutoComplete TextBox.
$(this).val("");
return false;
}
}
这个解决方案对我有用。
答案 1 :(得分:0)
拥有全局变量
var has_valid_values = false;
如果results.length == 0则将其设置为false,否则设置为true。
在模糊处理程序中,使用
if (!has_valid_values)
$("#" + txtbxId).val("");
答案 2 :(得分:0)
您的代码将事件处理程序绑定到输入。尝试直接清除输入,如下所示:
$("#" + txtbxId).val("");