element.trigger()在IE中不起作用

时间:2016-04-26 15:43:11

标签: jquery angularjs jquery-ui

我使用AngularJS实现了jQuery自动完成功能。

app.directive("autoComplete", function ($timeout) {
        return {
            restrict: "A",
            link: function (scope, element) {
                var location = ["OMAHA, NE", "OMAHA, TX", "DALLAS, TX", "DALLAS, NE"];

                element.autocomplete({
                    source: location,
                    autoFocus: true,
                    delay: 0,
                    minLength: 3,
                    select: function () {
                        $timeout(function () {
                            element.trigger("input");
                        }, 0);
                    }
                });
            }
        }
    });

之前,从下拉列表中选择的自动填充值无法传递到ngModelJSFiddle example)。然后我添加了element.trigger("input");,一切正常(在Chrome或Firefox中)。

然而,问题仍然存在于IE中(我使用的是IE 11)。当使用"输入"从下拉列表中选择自动完成值时或"左键单击"或者" Tab",它不能传递给ngModel。所以原因是element.trigger("input");不知何故在IE中不起作用。

感谢任何帮助。谢谢!

1 个答案:

答案 0 :(得分:1)

解决方案是:

select: function() {
    $timeout(function() {
        //Assign the selcted value to ngModel: scope.<ngModelValue> = <selectedValue>;
    }, 0);
}