2011-04-25 15 views
0

嗨,我想带回一些产品和用户名,但是他们应该只在他们首先键入“@”符号时才会复出,我该怎么做?只有当热键存在时,jquery自动完成

嗨,我设法想出这个,

<script type="text/javascript"> 
    $(function() { 
       $(".fateinp").autocomplete({ 
        source: function (request, response) { 
         $.ajax({ 
          url: "WebServices/List.asmx/FetchUsers", 
          data: "{ 'product': '" + request.term + "' }", 
          dataType: "json", 
          type: "POST", 
          contentType: "application/json; charset=utf-8", 
          dataFilter: function (data) { return data; }, 
          success: function (data) { 
           response($.map(data.d, function (item) { 
            return { 
             value: item._Name 
            } 
           })) 
          }, 
          error: function (XMLHttpRequest, textStatus, errorThrown) { 
           alert(textStatus); 
          } 
         }); 
        }, 
        minLength: 2 
       }); 
    }); 
</script> 

但是每当我加你的建议;

var autocompleter = document.getElementById(“some-element”);

我一直得到autocompleter为null,原谅我,如果这是一个新手的问​​题。谢谢

回答

2

将自动完成(或者如果他们已经被缓存,显示)使用这样的东西包装到AJAX调用。

var autocompleter = document.getElementById("some-element"); 

if (autocompleter.value.startsWith("@")) { 
    // invoke AJAX here 
} 
+0

最好的解决方案之一。 – 2011-04-25 17:25:29

+0

非常好,谢谢你的回复,会给你一个提议 – pmillio 2011-04-25 17:29:44

+0

你好,我编辑了我的第一篇文章,告诉你我到目前为止做了什么,你能告诉我我要去哪里吗,谢谢 – pmillio 2011-04-26 00:39:48