从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")
     })