I JQuery
auf zwei Eingangstextelementen bin mit (den readonly
sind) und zwei Tasten, so dass, wenn die Taste 1 nur angeklickt wird Eingang 1 sollte gelesen werden/schreiben. Und wenn Taste 2 angeklickt wird, sollte nur Eingang 2 lesen/schreiben. Und wenn die entsprechende Schaltfläche erneut angeklickt wird, sollte der entsprechende Eingang erneut gelesen werden. Aber mein folgendes Skript ändert das Readonly-Attribut beider Eingaben unabhängig davon, auf welche Schaltfläche geklickt wurde. Ich dachte, nur ein Ereignis für diesen speziellen Eingang ausgelöst werden soll, wie hier durch einen here Benutzer erklärteJQuery Klasse Wähler auf zwei Eingabeelemente und zwei Tasten
HINWEIS: Ich weiß, dass wir id statt Klassenauswahl aber in meinem realen Szenario der Eingangs- und Tasten-Tags dynamisch erzeugt werden können über eine Schleife und die Daten stammen aus einer Datenbank. Daher wissen wir nicht, wie viele solche Elemente jedes Mal erstellt werden. Und wie der Benutzer in dem oben erwähnten Link darauf hingewiesen hat, sollte nur ein Klick-Ereignis für eine entsprechende Schaltfläche ausgelöst werden. Also die Frage ist wirklich, wie wir dieses Szenario erreichen können, da das unten angegebene Beispiel in einem solchen Szenario nicht funktionieren wird.
HTML:
<table>
<tbody>
<tr>
<td>
<input class="txtInput" type="text" name="test1" value="test1val" readonly/>
</td>
<td>
<input type="button" class="btnEdit" name="editName" value="Edit"/>
</td>
</tr>
<tr>
<td>
<input class="txtInput" type="text" name="test2" value="test2val" readonly />
</td>
<td>
<input type="button" class="btnEdit" name="editName" value="Edit" />
</td>
</tr>
</tbody>
</table>
JQuery:
$(document).ready(function() {
$('.btnEdit').click(function() {
if ($('.txtInput').prop('readonly')) {
$('.txtInput').removeAttr('readonly');
}
else {
$('.txtInput').attr('readonly', 'readonly')
}
});
});
Seitenanzeige:
Ihr Beispiel macht beide Eingaben editierbar, sobald die andere Schaltfläche geklickt wird. E.g: Wenn Sie auf btn1 klicken, wird das Tag input1 in editierbar geändert. Wenn Sie dann auf btn2 klicken, wird das Tag input2 editierbar; aber das input1-Tag bleibt auch editierbar. – nam
@nam - Ich nahm an, das war der Punkt, aber wenn Sie immer nur einen Eingang aktiv haben wollten, setzen Sie einfach die Eigenschaft readonly für alle, bevor Sie sie für die aktuelle ändern usw. Bearbeitete die Antwort. – adeneo