19

我最近一直在试图解决这个问题,但我做不到

the problem is that i have an inputfield with type textthat i need to get the current input data when the values from the autocomplete are selected. 注意我正在使用 jQuery UI 自动完成。

我可以捕捉到keyup事件,但是当用户点击自动完成值时。jQuery 不会触发change事件处理程序,我尝试使用每个事件处理程序但无济于事。

我认为它无法捕获基于 DOM 的元素操作?我不确定。这是一个 小提琴

4

2 回答 2

43

像这样 http://jsfiddle.net/PUpRr/

select选项应该可以解决问题。

选项/事件/方法 API 文档http ://api.jqueryui.com/autocomplete/

希望这符合需求:)

示例代码

$("#to").autocomplete({
    source: function (request, response) {

        var friendsArray = [];
        friendsArray = [{
            "id": 1,
            "name": "hulk",
            "value": "hulk"
        }, {
            "id": 2,
            "name": "ironman",
            "value": "ironman"
        }, {
            "id": 3,
            "name": "Foobar",
            "value": "Foobar"
        }];

        response(friendsArray);
        return;


    },

    select: function (e, ui) {

        alert("selected!");
    },

    change: function (e, ui) {

        alert("changed!");
    }
});
于 2013-10-18T02:09:28.323 回答
-1

Chrome 在保留 ui 以进行单击更改时遇到问题,因此我为自动完成打开事件中的各个弹出列表锚标记添加了 mousedown 处理程序。这也是设置列表样式的好地方:

    function onItemTypeAheadListOpen(e, ui) {
       // Stub for list click issues
       $('.ui-autocomplete a').mousedown(function () {
         lastItemClicked = this.innerText;
       });
       // Override default list style
       $('.ui-autocomplete').css('z-index', '600');
       $('.ui-autocomplete').css('width', '480px');
    } 
于 2021-01-12T23:14:03.680 回答