我使用jquery函数实现了一个autoComplete文本框,并从DB中获取了建议值。一切都很好。
但如果找不到匹配的数据,我想向用户显示一些用户友好的消息,说“找不到匹配”,并清除文本框。我该如何实现呢?
添加了currnt代码
function txtAutoComplete(acUrl, minLength, txtbxId) {
$("#" + txtbxId).autocomplete({
minLength: minLength,
source: function (request, responseFn) {
$.post(acUrl, null, function (resp) {
var txtValue = $.ui.autocomplete.escapeRegex(request.term);
var matcher = new RegExp("^" + txtValue, "i");
var a = $.grep(resp, function (item, index) {
return matcher.test(item);
});
responseFn(a);
});
}
感谢Yuriy Rozhovetskiy。
var error = 'No match';
if (a.length == 0) {
responseFn(error);
}
else {
responseFn(a);
}
但错误建议会垂直显示如何使其显示为正常的自动提示。 感谢
答案 0 :(得分:1)
你可以在源功能中完成所有这些工作人员:
source: function (request, responseFn) {
$.post(acUrl, null, function (resp) {
var txtValue = $.ui.autocomplete.escapeRegex(request.term);
var matcher = new RegExp("^" + txtValue, "i");
var a = $.grep(resp, function (item, index) {
return matcher.test(item);
});
if(a.length == 0){
alert("No matches found");
$("#" + txtbxId).val("");
}
responseFn(a);
});
}
答案 1 :(得分:1)
根据Yuriy Rozhovetskiy的建议更改了我的代码,只需稍加修改即可发送有效的JSON
var error = ["No match"];
if (a.length == 0) {
responseFn(error);
}
else {
responseFn(a);
}
答案 2 :(得分:0)
您可以在返回值的脚本中返回此值。
不要返回任何内容,只需检查是否有某些值,如果没有返回一个数组,其中包含一个包含&#34的值;找不到匹配项" -Value。