从jqueryui自动完成组合框中获取所选值
我正在尝试从中获取所选值 这是你的电话号码 我已经添加了下面的代码来获得所选的值。但它没有起作用从jqueryui自动完成组合框中获取所选值,jquery,jquery-ui,autocomplete,combobox,Jquery,Jquery Ui,Autocomplete,Combobox,我正在尝试从中获取所选值 这是你的电话号码 我已经添加了下面的代码来获得所选的值。但它没有起作用 $( "#combobox" ).autocomplete({ select: function(event, ui) { alert($(ui).val()); } }); 如何解决此问题?首先,在“正常”自动完成中,您可以通过执行ui.item.value来获取所选项目的值。 在你的情况下,这不起作用。可能是因为select函数被重写了 而是在autoComplet
$( "#combobox" ).autocomplete({
select: function(event, ui) {
alert($(ui).val());
}
});
如何解决此问题?首先,在“正常”自动完成中,您可以通过执行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)
,然后打开控制台查看其他选项。
总之,你甚至不需要再调用自动完成小部件了
以下是解决您问题的有效方法:
只需在ui中访问项的值变量,您将获得所选选项的所需值。只需对代码及其固定值进行一点小的更改。首先设置文本框的id,然后获取该文本框的值,并将其与下拉选项的文本匹配,如果选项的文本匹配,则获取其值。您可以在JSFIDLE中看到示例
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")
})
this.input=$(“”)
.appendTo(此.wrapper)
.val(值)
.attr('占位符',“输入类型…”)
.attr(“标题”、“名称”)
//设置输入类型文本的Id
.attr('id','Mach')
.addClass(“自定义组合框输入ui小部件ui小部件内容ui状态默认ui左角”)
.自动完成({
延迟:0,
最小长度:0,
来源:$.proxy(此“\u来源”)
})
ui.item.value是介于“”和“”之间的文本,ui.item.option.value是实际值(如果您获得的是选项值),而不是通过ui.item.option.value可以获得的文本
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")
})