我有一个非常有趣的案例,其中JQuery Autocomplete字段在第一次输入TextBox时没有响应,但是当我在TextBox外面TAB然后第二次将光标返回到TextBox时它开始响应结果显示为我开始输入。

当我使用firebug时,我实际上可以看到我的应用程序中的AJAX函数被调用并且结果返回到html模板,但是结果没有显示,可能导致这种行为的原因是什么?

我的函数绑定代码:

  $(function()
  {
    $(document).ready(function(){
       $("#tags1").bind("keyup",autoFill)
      });
   });

我的自动填充功能

 function autoFill(){
           $("#tags1").autocomplete("/taglookup/", {
        width: 320,
        max: 4,
        highlight: false,
        multiple: true,
        multipleSeparator:",",
        scroll: true,
        scrollHeight: 300,
        delay: 10
         });
       }

我的TextBox字段:

 <input type="text" style="width: 400px" id="tags1" name="tags1" value="">
有帮助吗?

解决方案

为什么要在keyup上进行autocomplete()调用?我认为这可能会导致你的问题。我会尝试直接从文档就绪事件中调用autocomplete()。

$(document).ready(function(){

        $("#tags1").autocomplete("/taglookup/", {
        width: 320,
        max: 4,
        highlight: false,
        multiple: true,
        multipleSeparator:",",
        scroll: true,
        scrollHeight: 300,
        delay: 10
         });

      });

其他提示

如果您使用的是我今天使用的相同自动填充程序(在另一台计算机上抱歉 - 无法确定具体版本是什么) - 那么您不需要在keyup上绑定 - 只需在启动时绑定一次 -

<script>
    $('#tags1').autocomplete(....);
</script>

自动完成功能可处理所有按键/聚焦变化等。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top