使用jQuery使文本区域只读

48

对于文本 输入,我执行以下操作:

$('input[type="text"]').each(function(){
  $(this).attr('readonly','readonly');
});

但是对于textarea,我该怎么做才能让它变成只读(readonly)状态呢?

5个回答

80

将它包含在你的选择器中(使用多个/元素选择器),像这样:

$('input[type="text"], textarea').attr('readonly','readonly');

你可以在这里进行测试。如果这是你唯一要做的事情,那就没必要使用.each()方法,你可以直接调用.attr()来选中所有匹配的元素。


21
在最新版本的jQuery中,更推荐使用方法prop而不是attr
使特定的文本区域只读: $('#mytextarea1').prop('readonly', true); 使所有文本区域只读: $('textarea').prop('readonly', true); 使所有“文本”字段都只读: $('input[type=text]').prop('readonly', true); 使所有“文本”字段和文本区域都只读: $('input[type=text],textarea').prop('readonly', true); 请注意“只读”和“禁用”的外观上的区别:
下面是一个设置了disabledtrue<textarea>Textarea disabled(看起来与普通文本区域不同)
下面是一个设置了readonlytrue<textarea>textarea readonly(看起来与普通文本区域相同)

13

我尝试过这个。但是,如果我重新加载页面,则文本区域不会再次启用。 - Krishna Raj

8

试一下这个

$("#mytxtarea").attr("disabled", "disabled");

1

你可以编写

$("textarea").attr("readonly", "readonly");

这将使所有文本区域字段变为只读。


4
残疾人并非只读,同时您实际上混合了几年前就存在的答案。 - lukaszrys
是的!你说得对。现在我修改了我的答案。谢谢你的评论。 - Mehedi hasan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接