我正在尝试从jqueryui autocomplete combobox获取选定的值。
这是Demo。
我已添加以下代码以获取所选值。但它没有用。
$( "#combobox" ).autocomplete({
select: function(event, ui) {
alert($(ui).val());
}
});
我该如何解决这个问题?
答案 0 :(得分:5)
首先,在“正常”自动填充功能中,您可以通过ui.item.value
获取所选项目的值。
在你的情况下,这不起作用。也许是因为select函数被覆盖了。
而是警告autoCompleteSelect
功能中的值。
this._on(this.input, {
autocompleteselect: function (event, ui) {
/* THIS IS NEW */
alert(ui.item.value);
ui.item.option.selected = true;
this._trigger("select", event, {
item: ui.item.option
});
}
如果您对此函数中的其他选项感到好奇,只需在其中执行console.log(ui)
并打开控制台即可查看其他选项。
总而言之,您甚至不需要再调用自动完成小部件了。
答案 1 :(得分:5)
这是解决问题的工作小提琴: Working Fiddle
$( "#combobox" ).combobox({
select: function( event, ui ) {
alert(ui.item.value);
}
});
只需访问ui中item的value变量,您将获得所选选项的必需值。只需在代码中进行一些小修改即可。
答案 2 :(得分:0)
首先设置文本框的ID,然后获取该文本框的值,并将其与下拉选项的文本匹配,如果选项的文本匹配,则获取其值。你可以在jsfiddle中看到例子here
this.input = $("<input>")
.appendTo(this.wrapper)
.val(value)
.attr('placeholder', "Enter Type...")
.attr("title", "")
// Set Id of Input Type Text
.attr('id', 'Mach')
.addClass("custom-combobox-input ui-widget ui-widget-content ui-state-default ui-corner-left")
.autocomplete({
delay: 0,
minLength: 0,
source: $.proxy(this, "_source")
})