0

我正在尝试将我的只读文本框设置为“不可聚焦”。基本上,当用户单击文本区域时,我不想让插入符号出现。

我正在使用这段代码:

    $(document).on("focus", ":input[readonly]", function () {
        this.blur();
      }
    );

这在火狐中效果很好,但在 IE 中它似乎不起作用,或者至少响应不够快。

谢谢你的帮助!我正在拔头发

4

3 回答 3

1

似乎可以解决您的问题,强制焦点然后模糊:

http://jsfiddle.net/Y2K5a/show

$(document).on("focus", ":input[readonly]", function () {
    this.blur().focus().blur();
});
于 2013-06-19T17:17:52.880 回答
0

应该管用。在 IE10 中试过这个。 http://jsfiddle.net/Lj3Te/

如果没有,请尝试将您的元素设置为 readOnly ,如下所示:

document.getElementById('ID').readOnly = true;

http://msdn.microsoft.com/en-us/library/ie/ms534357(v=vs.85).aspx

于 2013-06-19T16:53:35.673 回答
0

我最终这样做了:

     $(document).on('click', function (event) {
        var doPrevent = false;
        var d = event.srcElement || event.target;
        if ((d.tagName.toUpperCase() === 'INPUT' &&  d.tagName.toUpperCase() === 'TEXTAREA') {
            doPrevent = d.readOnly || d.disabled;
        }

        if (doPrevent) {
            d.blur();
        }
    });

我认为它让 IE 有时间工作,或者可能给它一个真实的对象。无论哪种方式都非常奇怪

于 2013-06-19T21:22:41.350 回答