我的网站上有一个表单,如果填写并提交所有字段,并且用户再次尝试访问相同的表单,则仅显示几个字段,而其他字段则不会缓存其数据。有一个字段需要使用输入的数据进行填充,但应该是只读的。我的任务是将该字段设为只读。
此代码适用于 Chrome,但不适用于 IE。请建议一个可以在IE上运行的代码,以使字段只读。
谢谢安努
attr
添加属性,如下所示:
$('#someid').attr('readonly', 'readonly');
但是,对于像 checked
、disabled
和 readonly
这样的 DOM 属性,执行此操作的正确方法(从 JQuery 1.6 开始)是使用 prop
。
$('#someid').prop('readonly', true);
//method 1
$("#input1").attr("readonly","readonly");
//method 2
$("#input2").prop("readonly",true);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="input1" type="text" />
<input id="input2" type="text" />
readonly
输入元素在 IE 8、9、10 或 11 中不起作用。但是您可以使用以下方法对其进行模拟:
$("#myInput").on("keydown", function() {return false});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="myInput" value="some value"/>
必须使用 .prop()
,而不是.attr()
来设置只读。见 http://api.jquery.com/prop/有了.prop()
你应该使用布尔值 true 或 false,并且(据我所知)在只读中使用一个小 o:
$('#Emailpi_Email').prop('readonly', true);