0

我有一个带有自动完成功能的文本框:

 $( "#mytextbox" ).autocomplete({
            source: bigData,
                        
            select: function(event, ui) {
                            
            $("#mytextbox").val(set this value here);
                        
            }
   });

As you can see, when an option is selected I want the textbox to actually change the value! 我知道这听起来很疯狂和愚蠢,但是自动完成选项给出了一个详细列表,其中包含每个选项的大量信息,但我不希望输入所有数据,我只需要一小部分数据。例如,如果是城市,它可能有:

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

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

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

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

那么如何修改函数内自动完成功能的分配文本框呢?可能吗?

4

1 回答 1

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

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

于 2012-08-21T13:12:04.363 回答