Javascript 无法在IE中的输入字段上设置只读
我有一个简单的输入字段:Javascript 无法在IE中的输入字段上设置只读,javascript,jquery,google-chrome,internet-explorer,Javascript,Jquery,Google Chrome,Internet Explorer,我有一个简单的输入字段: <input id="myInput" class="someClass"></input> 其中e.currentTarget是IE11命名的[object HTMLInputElement] 我只是想将这个输入字段设置为只读。在chrome中,该代码有效,但在IE中无效。 我已经试过了: .prop('readonly','readonly'); .prop('readonly', ''); .attr('readonly', true);
<input id="myInput" class="someClass"></input>
其中e.currentTarget
是IE11命名的[object HTMLInputElement]
我只是想将这个输入字段设置为只读。在chrome中,该代码有效,但在IE中无效。
我已经试过了:
.prop('readonly','readonly');
.prop('readonly', '');
.attr('readonly', true);
但是它们在IE11中都不起作用(在chrome中,它们每个人都起作用)好吧,这很奇怪:如果你在字段有焦点时将其设置为只读,IE11看起来有点疯狂,其中一种疯狂的方式是让你在光标存在时不断修改字段——只需一些按键,而不是其他按键。下面是一个例子:
旁注:您不需要jQuery来设置
readOnly
属性,只需:
e.currentTarget.readOnly = true; // Note the capital O
好吧,这很奇怪:如果在字段具有焦点时将其设置为只读,IE11似乎有点疯狂,其中一种疯狂的方式是让您在光标存在时继续修改字段-只需一些按键,而不是其他按键。下面是一个例子:
旁注:您不需要jQuery来设置
readOnly
属性,只需:
e.currentTarget.readOnly = true; // Note the capital O
“只读”输入元素在IE 8、9、10或11中的工作不一致
在这种情况下,我们可以在输入元素中使用onkeydown=“javascript:return false;”“。“只读”输入元素在IE 8、9、10或11中不一致 在这种情况下,我们可以在输入元素中使用onkeydown=“javascript:return false;”“。我在jquery端使用了Focusin()函数,Id为。当我单击textbox时,我们删除readony属性,如下所示: HTML: })) 注意:它将在IE11和其他浏览器中工作。我在jquery端使用了Focusin()函数,Id为。当我单击文本框时,我们删除readony属性,如下所示: HTML: }))
注意:它将在IE11和其他浏览器中工作。您尝试过.attr('readOnly',true)@jrenk:如果
prop
不起作用,attr
不会起作用。它可以正常工作。IE中的输入变为只读。(我使用了$('input')
作为选择器)。@MrUpsidown:区别似乎在于所讨论的字段是否有焦点。@T.J.Crowder我没有得到这个。你的意思是,使用IE,该字段仍然可以集中?你尝试过.attr('readOnly',true)@jrenk:如果prop
不起作用,attr
不会起作用。它可以正常工作。IE中的输入变为只读。(我使用了$('input')
作为选择器)。@MrUpsidown:区别似乎在于所讨论的字段是否有焦点。@T.J.Crowder我没有得到这个。你的意思是说,在IE的帮助下,球场仍然可以集中注意力?谢谢。但我知道这会给我带来严重的角度误差;)但这是另一个问题的主题。谢谢。但我知道这会给我带来严重的角度误差;)但这是另一个问题的主题。
$(e.currentTarget).blur();
e.currentTarget.readOnly = true; // Note the capital O
<input type="text" id="txtCustomerSearch" readonly class="customer-search"
placeholder="Search customer:" maxlength="100" autocomplete="off">
$("#txtCustomerSearch").focusin(function () {
$(this).removeAttr('readonly');