从jqueryui autocomplete组合框中获取选定的值

时间:2013-08-03 08:41:48

标签: jquery jquery-ui autocomplete combobox

我正在尝试从jqueryui autocomplete combobox获取选定的值。

这是Demo

我已添加以下代码以获取所选值。但它没有用。

$( "#combobox" ).autocomplete({
   select: function(event, ui) { 
       alert($(ui).val());
   }
});

我该如何解决这个问题?

3 个答案:

答案 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)并打开控制台即可查看其他选项。 总而言之,您甚至不需要再调用自动完成小部件了。

Updated fiddle

答案 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")
     })