在IE中更改值并触发输入

时间:2014-06-10 13:13:30

标签: jquery

我需要在加载后强行显示TypeAhead结果 在文档中,它指出我需要更改input的值,然后将其更改回原始值(All触发input时)以使其正常工作。

我正在使用以下代码:

    window.setTimeout(function () {
        var val = $(element).val();
        $(element).focus();
        $(element).eq(0).val("").trigger("input");
        $(element).eq(0).val(val).trigger("input");
    }, 500);

然而,这适用于Chrome,而非IE。

1 个答案:

答案 0 :(得分:1)

使用一些hacky代码管理自己解决这个问题:

    var val = $(element).val();

    window.setTimeout(function () {
        $(element).focus();
    }, 50);

    window.setTimeout(function () {
        $(element).eq(0).val("").trigger("keypress");

        window.setTimeout(function () {
            $(element).eq(0).val(val).trigger("keypress");
        }, 80);

    }, 75);

看起来我需要在活动之间留出更多时间......如果有人能够看到更好的方法,我可以接受任何想法。

修改:对于有兴趣的人, NOT 可以在Chrome中使用。
编辑2:如果您正在寻找任何类型的速度或功能,这将毫无用处。它打破了TypeAhead的干净运行......