我有一个带自动填充功能的文本框:
$( "#mytextbox" ).autocomplete({
source: bigData,
select: function(event, ui) {
$("#mytextbox").val(set this value here);
}
});
如您所见,当选择一个选项时,我希望文本框实际更改该值!我知道这听起来很疯狂和愚蠢,但自动完成选项给出了每个选项的大量信息的详细列表,但我不希望输入所有数据,我只需要一小部分数据。例如,如果它可能是城市:
美国伯明翰,邮政编码......
英国伯明翰,邮政编码......
伯明翰,其他地方,......
我希望能够选择正确的“伯明翰”,但我不希望所有其他信息输入。那我选择哪一个有什么不同呢?其他信息输入到不同的框中,因此正确的城市很重要。
那么如何在函数内部修改自动完成功能的指定文本框?有可能吗?
答案 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);
}
});
当然,您可以通过修剪空白等来扩展它。这取决于您获取数据的方式......