我有一个简单的输入框:
<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/