我有以下输入:
<input id="fieldName" name="fieldName" type="text" class="text_box" value="Firstname"/>
如何在不更改元素或其值的情况下使用jQuery将此元素设置为只读输入?
答案 0 :(得分:230)
目前使用jQuery 1.6.1或更高版本时,建议在设置布尔属性/属性时使用.prop()。
$("#fieldName").prop("readonly", true);
答案 1 :(得分:86)
只需添加以下属性
即可// for disabled i.e. cannot highlight value or change
disabled="disabled"
// for readonly i.e. can highlight value but not change
readonly="readonly"
jQuery对元素进行更改(以下disabled
替换readonly
以设置readonly
属性。)
$('#fieldName').attr("disabled","disabled")
或
$('#fieldName').attr("disabled", true)
注意:从jQuery 1.6开始,建议使用.prop()
代替.attr()
。除.attr()
替换.prop()
外,上述代码的工作方式完全相同。
答案 2 :(得分:67)
要使输入只读:
$("#fieldName").attr('readonly','readonly');
使其可读/写使用:
$("#fieldName").removeAttr('readonly');
添加disabled
属性不会使用post发送值。
答案 3 :(得分:6)
有两个属性,即readonly
和disabled
,它们可以构成半只读输入。但是它们之间有微小的区别。
<input type="text" readonly />
<input type="text" disabled />
readonly
属性使您的输入文本被禁用,用户无法再对其进行更改。disabled
属性使您的输入文本被禁用(不可更改),而且无法提交。jQuery方法(1):
$("#inputID").prop("readonly", true);
$("#inputID").prop("disabled", true);
jQuery方法(2):
$("#inputID").attr("readonly","readonly");
$("#inputID").attr("disabled", "disabled");
JavaScript方法:
document.getElementById("inputID").readOnly = true;
document.getElementById("inputID").disabled = true;
PS prop
与jQuery 1.6
一起引入。
答案 4 :(得分:5)
您只需将其标记为disabled
或enabled
即可。您可以使用此代码执行此操作:
//for disable
$('#fieldName').prop('disabled', true);
//for enable
$('#fieldName').prop('disabled', false);
---最好使用prop而不是attr。
答案 5 :(得分:3)
使用此示例制作文本框ReadOnly或Not。
<input type="textbox" class="txt" id="txt"/>
<input type="button" class="Btn_readOnly" value="Readonly" />
<input type="button" class="Btn_notreadOnly" value="Not Readonly" />
<script>
$(document).ready(function(){
('.Btn_readOnly').click(function(){
$("#txt").prop("readonly", true);
});
('.Btn_notreadOnly').click(function(){
$("#txt").prop("readonly", false);
});
});
</script>
答案 6 :(得分:1)
也许禁用使用属性:
<input disabled="disabled" id="fieldName" name="fieldName" type="text" class="text_box" />
或者只使用label tag:;)
<label>
答案 7 :(得分:0)
<html xmlns="http://www.w3.org/1999/xhtml">
<head >
<title></title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
</head>
<body>
<div>
<input id="fieldName" name="fieldName" type="text" class="text_box" value="Firstname" />
</div>
</body>
<script type="text/javascript">
$(function()
{
$('#fieldName').attr('disabled', 'disabled');
});
</script>
</html>
答案 8 :(得分:0)
在JQuery 1.12.1中,我的应用程序使用代码:
$('"#raisepay_id"')[0].readOnly=true;
$('"#raisepay_id"')[0].readOnly=false;
它有效。
答案 9 :(得分:0)
给出-
<input name="foo" type="text" value="foo" readonly />
这有效-(jquery 1.7.1)
$('input[name="foo"]').prop('readonly', true);
经过了readonly和readOnly的测试-均有效。
答案 10 :(得分:-1)
setReadOnly(state)对表单非常有用,我们可以直接或从各种条件设置任何字段setReadOnly(state)。但我更喜欢使用readOnly将opacity设置为选择器,否则attr =&#39;禁用&#39;也是以同样的方式工作。
readOnly示例:
$('input').setReadOnly(true);
或通过像
这样的各种法典var same = this.checked;
$('input').setReadOnly(same);
这里我们使用state boolean值来设置和删除输入中的readonly属性,具体取决于复选框的点击。
答案 11 :(得分:-3)
在html中
$('#raisepay_id').attr("readonly", true)
$("#raisepay_id").prop("readonly",true);
在bootstrap中
$('#raisepay_id').attr("disabled", true)
$("#raisepay_id").prop("disabled",true);
JQuery是一个不断变化的库,有时他们会定期进行改进。 .attr()用于从HTML标记中获取属性,虽然它是完美的功能。后来添加了.prop()更具语义性,并且它更适用于“已检查”和“已选择”等无值属性。 / p>
建议如果您使用的是更高版本的JQuery,则应尽可能使用.prop()。