javascript - 无法在 IE 中的输入字段上设置只读

标签 javascript jquery google-chrome internet-explorer

我有一个简单的输入框:

<input id="myInput" class="someClass"></input>

和一些 JQuery 代码:

$(e.currentTarget).prop('readonly', true);

e.currentTarget 是 IE11 命名的 [object HTMLInputElement]

我只是想将此输入字段设置为只读。在 chrome 中,该代码有效,但在 IE 中无效。 我已经试过了:

.prop('readonly','readonly');
.prop('readonly', '');
.attr('readonly', true);

但它们都不能在 IE11 中工作(在 chrome 中每个人都可以工作)

最佳答案

好吧,这很奇怪:如果您将字段设置为只读它有焦点,IE11 似乎有点疯狂,其中一种方式goes bonkers 是让你在光标在那里的时候继续修改字段——用一些击键,但不是其他的。这是一个例子:Fiddle

$("#myInput").one("click", function(e) {
    $(e.currentTarget).prop('readonly', true);
    display("e.currentTarget.readOnly: " + e.currentTarget.readOnly);
});
$("#myInput").on("keydown", function(e) {
    display("e.currentTarget.readOnly: " + e.currentTarget.readOnly);
});
function display(msg) {
    $("<p>").html(String(msg)).appendTo(document.body);
}

设置 readOnly 之前添加这一行修复它 ( fiddle ):

$(e.currentTarget).blur();

旁注:您不需要 jQuery 来设置 readOnly 属性,只需:

e.currentTarget.readOnly = true; // Note the capital O

关于javascript - 无法在 IE 中的输入字段上设置只读,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28344494/

相关文章:

javascript - react-bootstrap 设置 FormControl 的值

javascript - 如何检测 ECMAscript 版本?

javascript - Bug 动画 JavaScript

javascript - JQgrid:单击 JQgrid header 时是否会触发任何事件?

javascript - 如何在 Node.js 中将数据从一种方法传输到另一种方法?

javascript - 用jQuery实时更新div内容

javascript - 如何使用事件监听器来启用顺序点击?

css - Chrome 保存 CSS,在网站加载时加载

javascript - 从一个函数返回值到另一个函数

jquery - 像 Flusta.com 一样用 Jquery 创建滑动动画