如何在<input />中添加“readonly”属性?

时间:2009-08-20 14:49:34

标签: javascript jquery

如何将readonly添加到特定<input>.attr('readonly')不起作用。

10 个答案:

答案 0 :(得分:496)

jQuery&lt; 1.9

$('#inputId').attr('readonly', true);

jQuery 1.9 +

$('#inputId').prop('readonly', true);

详细了解difference between prop and attr

答案 1 :(得分:145)

使用$.prop()

$("#descrip").prop("readonly",true);

$("#descrip").prop("readonly",false);

答案 2 :(得分:24)

Readonly是html中定义的属性,因此将其视为一个属性。

如果您希望它不可编辑,您需要在正在使用的对象中使用readonly =“readonly”。 如果你希望它再次可编辑,你就不会有像readonly =''这样的东西(如果我理解正确的话,这不是标准的)。你真的需要删除整个属性。

因此,使用jquery添加它并删除它是有道理的。

只读一下:

$("#someId").attr('readonly', 'readonly');

删除只读:

$("#someId").removeAttr('readonly');

这是唯一真正适合我的选择。 希望它有所帮助!

答案 3 :(得分:20)

.attr('readonly', 'readonly')应该做到这一点。您的.attr('readonly')仅返回该值,但未设置该值。

答案 4 :(得分:16)

我认为“禁用”会排除在POST上发送的输入

答案 5 :(得分:11)

您可以使用.removeAttr;

禁用只读
$('#descrip').removeAttr('readonly');

答案 6 :(得分:5)

启用只读:

$("#descrip").attr("readonly","true");

禁用只读

$("#descrip").attr("readonly","");

答案 7 :(得分:3)

使用setAttribute属性。请注意,例如,如果select 1在textbox上应用readonly属性,否则只读取readonly属性。

http://jsfiddle.net/baqxz7ym/2/

        short x = 50,y=40;
        short z = (short)(x + y);//THIS COMPILES
        short z2 = (short) x + y;//THIS DOESN'T

答案 8 :(得分:-2)

检查下面的代码:

<input id="mail">

<script>

 document.getElementById('mail').readOnly = true; // makes input readonline
 document.getElementById('mail').readOnly = false; // makes input writeable again

</script>

答案 9 :(得分:-3)

对于jQuery版本&lt; 1.9:

$('#inputId').attr('disabled', true);

对于jQuery版本&gt; = 1.9:

$('#inputId').prop('disabled', true);