自动完成文本框----没有找到值

问题描述:

我一直在使用jQuery函数来实现自动完成的文本框,我取出由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); 
      }); 
     } 

由于尤里Rozhovetskiy。

var error = 'No match'; 
if (a.length == 0) { 
    responseFn(error); 
} 
else { 
    responseFn(a); 
} 

但是,错误的建议是垂直显示我怎么能使它显示像一个正常的自动提示。 感谢

+1

您可以通过使用实现这个javascript和css规则和html标记以及(也许)服务器端技术(可选),可能会有一个预编译支持来显示自定义消息.... PS请显示您尝试过的一些代码。我们应该如何猜测插件的名称? – dakait 2013-03-01 07:18:15

+1

尝试过什么......? – 2013-03-01 07:18:55

+0

看看到自动填充combbox ..我想这是你所需要的http://jqueryui.com/autocomplete/#combobox – bipen 2013-03-01 07:20:40

你可以在源功能这一切的工作人员:

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); 
    }); 
} 
+0

我不想在警报中显示此内容。我想将其作为回应发送给用户。我试过了,但它是垂直显示?用代码编辑我的问题 – user2067567 2013-03-09 09:34:14

您可以在返回值的脚本返回该值。

而是没有返回的,只是检查,如果你有一定的值,如果不包含 - 值“找不到匹配”一个返回值的数组。

+0

你说什么是符合逻辑的,但是如何解决与'“未找到匹配”'元素的selectness问题?您需要以某种方式禁用它 – Engineer 2013-03-01 08:28:49

改变了我的代码,由尤里Rozhovetskiy很少的修改建议发送的JSON工作

var error = ["No match"]; 
if (a.length == 0) { 
    responseFn(error); 
} 
else { 
    responseFn(a); 
}