readonly
特定に追加するにはどうすればよい<input>
ですか?.attr('readonly')
動作しません。
readonly
特定に追加するにはどうすればよい<input>
ですか?.attr('readonly')
動作しません。
回答:
jQuery <1.9
$('#inputId').attr('readonly', true);
jQuery 1.9以降
$('#inputId').prop('readonly', true);
propとattrの違いについてもっと読む
$("#descrip").prop("readonly",true);
$("#descrip").prop("readonly",false);
$.prop()
事項:Propはreadonly属性を空白/空の文字列に設定するため、の属性セレクターを使用するCSSがある場合は、[readonly="readonly"]
これをに変更する[readonly]
(または両方を含める)必要があります。
Readonlyはhtmlで定義されている属性であるため、1つの属性として扱います。
編集できないようにするには、操作しているオブジェクトにreadonly = "readonly"のようなものを含める必要があります。そして、再び編集可能にしたい場合は、readonly = ''のようなものはありません(これが正しく理解されていれば、これは標準ではありません)。本当に属性全体を削除する必要があります。
そのため、jqueryを使用して追加および削除することは理にかなっています。
読み取り専用のものを設定します。
$("#someId").attr('readonly', 'readonly');
読み取り専用を削除:
$("#someId").removeAttr('readonly');
これは私にとって本当に効果的な唯一の選択肢でした。それが役に立てば幸い!
.attr('readonly', 'readonly')
トリックを行う必要があります。あなた.attr('readonly')
だけの値を返し、それは1を設定しません。
.attr
値はjQueryのドキュメントによると、文字列または数値ではなく、ブール値でなければなりません:api.jquery.com/attr/#attr2また、HTML「ブール属性は、」唯一の空の文字列または属性の値でなければなりません。解決策は.prop()
混乱を避けるために使うことだと思います。
「無効」にすると、POSTで入力が送信されなくなる
読み取り専用を有効にする場合:
$("#descrip").attr("readonly","true");
読み取り専用を無効にするため
$("#descrip").attr("readonly","");
setAttributeプロパティを使用します。例では、select 1がテキストボックスにreadonly属性を適用する場合、それ以外の場合は属性readonlyを削除することに注意してください。
http://jsfiddle.net/baqxz7ym/2/
document.getElementById("box1").onchange = function(){
if(document.getElementById("box1").value == 1) {
document.getElementById("codigo").setAttribute("readonly", true);
} else {
document.getElementById("codigo").removeAttribute("readonly");
}
};
<input type="text" name="codigo" id="codigo"/>
<select id="box1">
<option value="0" >0</option>
<option value="1" >1</option>
<option value="2" >2</option>
</select>