占位符在页面加载时打开jQuery UI自动完成组合框(IE10)

时间:2015-01-24 14:05:17

标签: jquery jquery-ui autocomplete placeholder

我正在使用jQuery UI自动完成组合框小部件。当我在我的组合框中添加占位符时,默认情况下会打开自动完成框。

仅在IE10及更高版本上发生

这是我的代码:

 _create: function () {
            this.wrapper = $("<span>")
            .addClass("custom-combobox")
            .insertAfter(this.element);
            this.element.hide();
            this._createAutocomplete();
            this._createShowAllButton(); 
            this.input.attr("placeholder", this.element.attr('placeholder'));
        },

2 个答案:

答案 0 :(得分:6)

我们注意到问题是通过实际聚焦组合框来解决的。

一旦组合框被聚焦,自动完成框就消失了,当组合框丢失焦点时,它仍然保持这种状态。

所以,我们的解决方案有点 hack-ish ,我们添加了.focus()后跟.blur()

 _create: function () {
            this.wrapper = $("<span>")
            .addClass("custom-combobox")
            .insertAfter(this.element);
            this.element.hide();
            this._createAutocomplete();
            this._createShowAllButton(); 
            this.input.attr("placeholder", this.element.attr('placeholder'));

            this.input.focus().blur();
          //^^^^^^^^^^^^^^^^^^^^^^^^^^ Voila!
        },

答案 1 :(得分:0)

我们在IE10 +中遇到了同样的问题,但是当我们添加一个带有特殊字符的占位符(德语“Umlaute”)时。

Seckin的解决方案也解决了我们的问题 - 经过一天艰苦的Google工作后;-)

试图投票给答案 - 但作为一个新手,我没有这样做的声誉......

_create: function () {
        this.wrapper = $("<span>")
        .addClass("custom-combobox")
        .insertAfter(this.element);
        this.element.hide();
        this._createAutocomplete();
        this._createShowAllButton(); 

        this.input.attr( "placeholder", 'Bitte wählen' );
        this.input.focus().blur();

    },