JQuery UI自动完成功能修改文本框

时间:2012-08-21 12:41:26

标签: jquery jquery-ui autocomplete

我有一个带自动填充功能的文本框:

 $( "#mytextbox" ).autocomplete({
            source: bigData,

            select: function(event, ui) {

            $("#mytextbox").val(set this value here);

            }
   });

如您所见,当选择一个选项时,我希望文本框实际更改该值!我知道这听起来很疯狂和愚蠢,但自动完成选项给出了每个选项的大量信息的详细列表,但我不希望输入所有数据,我只需要一小部分数据。例如,如果它可能是城市:

  

美国伯明翰,邮政编码......

     

英国伯明翰,邮政编码......

     

伯明翰,其他地方,......

我希望能够选择正确的“伯明翰”,但我不希望所有其他信息输入。那我选择哪一个有什么不同呢?其他信息输入到不同的框中,因此正确的城市很重要。

那么如何在函数内部修改自动完成功能的指定文本框?有可能吗?

1 个答案:

答案 0 :(得分:0)

根据jquery-ui文档,ui对象包含一个item对象,该对象是自动填充下拉列表中的选定项。因此,如果您的项目按照您描述的方式列出,即Birmingham, UK, 15780,您可以简单地用逗号分隔字符串,只使用第一部分替换文本框值。

$( "#mytextbox" ).autocomplete({
        source: bigData,

        select: function(event, ui) {
          // not sure if ui.item is the text value itself
          // or an HTML item, gotta check that. I'm assuming a string here.
          var str = ui.item.split(",")[0];

          $("#mytextbox").val(str);
        }
});

当然,您可以通过修剪空白等来扩展它。这取决于您获取数据的方式......