使用 Javascript 或 Jquery 将输入字段设为只读(我的代码在 chrome 上工作,但在 IE 上不起作



我的网站上有一个表单,如果填写并提交所有字段,并且用户再次尝试访问相同的表单,则仅显示几个字段,而其他字段则不会缓存其数据。有一个字段需要使用输入的数据进行填充,但应该是只读的。我的任务是将该字段设为只读。

此代码适用于 Chrome,但不适用于 IE。请建议一个可以在IE上运行的代码,以使字段只读。

谢谢安努

您可以使用

attr添加属性,如下所示:

$('#someid').attr('readonly', 'readonly');

但是,对于像 checkeddisabledreadonly 这样的 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);

最新更新