Wie kann ich readonly
zu einem bestimmten hinzufügen <input>
? .attr('readonly')
funktioniert nicht.
Wie kann ich readonly
zu einem bestimmten hinzufügen <input>
? .attr('readonly')
funktioniert nicht.
Antworten:
jQuery <1.9
$('#inputId').attr('readonly', true);
jQuery 1.9+
$('#inputId').prop('readonly', true);
Lesen Sie mehr über den Unterschied zwischen Prop und Attr
Verwenden Sie $ .prop ()
$("#descrip").prop("readonly",true);
$("#descrip").prop("readonly",false);
$.prop()
: Prop setzt das schreibgeschützte Attribut auf eine leere / leere Zeichenfolge. Wenn Sie also über CSS verfügen, für das der Attributselektor verwendet wird [readonly="readonly"]
, müssen Sie dies in [readonly]
(oder beides) ändern .
Readonly ist ein Attribut, wie es in HTML definiert ist. Behandeln Sie es also wie eines.
Sie müssen so etwas wie readonly = "readonly" in dem Objekt haben, mit dem Sie arbeiten, wenn Sie möchten, dass es nicht bearbeitet werden kann. Und wenn Sie möchten, dass es wieder bearbeitet werden kann, haben Sie nicht so etwas wie readonly = '' (dies ist kein Standard, wenn ich es richtig verstanden habe). Sie müssen das Attribut wirklich als Ganzes entfernen.
Wenn Sie jquery verwenden, ist es sinnvoll, es hinzuzufügen und zu entfernen.
Stellen Sie etwas schreibgeschützt ein:
$("#someId").attr('readonly', 'readonly');
Schreibgeschützt entfernen:
$("#someId").removeAttr('readonly');
Dies war die einzige Alternative, die wirklich für mich funktioniert hat. Ich hoffe es hilft!
.attr('readonly', 'readonly')
sollte den Trick machen. Sie geben .attr('readonly')
nur den Wert zurück, es wird kein Wert festgelegt.
.attr
Wert sollte gemäß den jQuery-Dokumenten nur eine Zeichenfolge oder Zahl sein, kein Boolescher Wert: api.jquery.com/attr/#attr2 Außerdem sollten HTML-Boolesche Attribute nur eine leere Zeichenfolge oder der Wert des Attributs sein. Ich denke, die Lösung besteht darin .prop()
, Verwirrung zu vermeiden.
Ich denke, "deaktiviert" schließt die Eingabe vom POST aus
Zum Aktivieren von Readonly:
$("#descrip").attr("readonly","true");
Zum Deaktivieren von Readonly
$("#descrip").attr("readonly","");
Verwenden Sie die Eigenschaft setAttribute. Beachten Sie im Beispiel, dass bei Auswahl von 1 das schreibgeschützte Attribut auf das Textfeld angewendet wird, andernfalls das schreibgeschützte Attribut entfernt wird.
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>
Für jQuery Version <1.9:
$('#inputId').attr('disabled', true);
Für jQuery-Version> = 1.9:
$('#inputId').prop('disabled', true);