1

这里的问题是我想触发对 jquery-ui 的自动完成组合框所做的更改。顺便说一句,这是组合框Jquery UI Combobox

这是我正在尝试的一个小提琴:Js fiddle

谢谢大家。

4

4 回答 4

1

我加

focus:function(event, ui){
    alert(ui.item.value);
},

在您的代码中,这里是示例http://jsfiddle.net/sechou/SuNMV/4/

focus :在焦点移动到一个项目(不是选择)之前, ui.item 指的是焦点项目。焦点的默认操作是将文本字段的值替换为焦点项的值,但前提是焦点事件由键盘交互触发。取消此事件会阻止更新值,但不会阻止菜单项获得焦点。

于 2012-08-13T10:22:22.223 回答
1

检查此代码
特别是 if 条件的其他部分
参见DEMO

             this.selected = valid = true;
                            return false;
                        }
                    });
                    if (!valid) {
                        // remove invalid value, as it didn't match anything
                        $(this).val("");
                        select.val("");
                        input.data("autocomplete").term = "";
                        return false;
                    }
                }else{
                  alert(ui.item.value);}
            }
        })
于 2012-08-13T10:42:24.767 回答
1

我还需要额外的事件处理来处理触发更改事件,因为当按下回车键或失去对输入的焦点(点击选项卡或鼠标点击)时,“选定”无法处理。

因此,使用最新版本的 jQuery Autocomplete 脚本,我创建了以下解决方案:DEMO

  • Enter:如果菜单可见,则选择第一项
  • 焦点丢失:部分匹配触发未找到消息并清除条目(jQuery UI),但完全键入的答案“选择”该值(不区分大小写)

如何使用 Change 方法:

$("#combobox").combobox({
    selected: function (event, ui) {
        $("#output").text("Selected Event >>> " + $("#combobox").val());
    }
})
.change(function (e) {
    $("#output").text("Change Event >>> " + $("#combobox").val());
});

希望这有助于其他需要额外更改事件功能的人来弥补“选定”留下的空白。

于 2012-12-17T20:49:29.453 回答
0

最简单的方法:

$( "select" ).combobox({ 
  select: function (event, ui) {
    $(this).trigger("change"); 
  }
});
于 2013-10-13T22:19:34.860 回答