Ich habe ein Formular mit 2 Kontrollkästchen und 2 Abschnitte von Eingabetextfeldern, die deaktiviert sind.Aktivieren und deaktivieren Sie das Textfeld, wenn eines der Kontrollkästchen aktiviert ist
Wenn nur das erste Kontrollkästchen wird das folgende Eingabetextfeld überprüft werden, aktiviert werden:
- Bestätigen Sie die Email
- Vollständiger Name
Wenn nur das zweite Kontrollkästchen aktiviert ist Die folgenden Eingabetextfelder sollten aktiviert sein:
- Confirm Email
- Farbe
- Größe
- Modell
Wenn beide Kontrollkästchen als alle Eingabetextfelder geprüft werden sollte aktiviert werden. Das Problem, das ich habe, ist, dass, wenn beide Kontrollkästchen aktiviert sind, eines deaktiviert ist, die 2 E-Mail-Textfelder deaktiviert werden.
Hier ist eine Geige zu dem, was ich habe. Ich kann jQuery verwenden. http://jsfiddle.net/Ujxkq/
Hier ist mein HTML:
<form id="myForm">
<h3>Section 1</h3>
Checkbox 1: <input type="checkbox" name="checkbox1" id="checkboxOne" onclick="enableDisableEmail(this.checked, 'emailAddr', 'emailConfirm');enableDisableSection1(this.checked, 'fullName');" />
<p><input type="text" id="emailAddr" name="myEmailAddr" placeholder="Email" disabled /></p>
<p><input type="text" id="emailConfirm" name="myEmailConfirm" placeholder="Confirm Email" disabled /></p>
<p><input type="text" id="fullName" name="myFullName" placeholder="Full Name" disabled /></p>
<h3>Section 2</h3>
Checkbox 2: <input type="checkbox" name="checkbox2" id="checkboxTwo" onclick="enableDisableEmail(this.checked, 'emailAddr', 'emailConfirm');enableDisableSection2(this.checked, 'color', 'size', 'model');" />
<p><input type="text" id="color" name="myColor" placeholder="Color" disabled /></p>
<p><input type="text" id="size" name="mySize" placeholder="Size" disabled /></p>
<p><input type="text" id="model" name="myModel" placeholder="Model" disabled /></p>
</form>
Hier mein Javascript ist:
function enableDisableEmail(isEnabled, email, confirm) {
document.getElementById(email).disabled = !isEnabled;
document.getElementById(confirm).disabled = !isEnabled;
}
function enableDisableSection1(isEnabled, fullName) {
document.getElementById(fullName).disabled = !isEnabled;
}
function enableDisableSection2(isEnabled, color, size, model) {
document.getElementById(color).disabled = !isEnabled;
document.getElementById(size).disabled = !isEnabled;
document.getElementById(model).disabled = !isEnabled;
}
Danke. Ich habe jQuery nicht verwendet, weil ich nicht gedacht habe, dass es benötigt wird, obwohl ich es verfügbar habe. Sorry für das Markieren von jQuery, als wenn das verwirrend wäre. – Mdd
Es ist kein Problem. Wenn Sie jQuery verfügbar und bereits auf der Seite geladen haben, bevorzuge ich persönlich diese Version, weil sie kompakter ist und die Anwendungslogik (onclick) von der HTML-Integration entfernt. – jcsanyi
Danke jcsanyi. Würde es Ihnen etwas ausmachen zu erklären, wie die! (Cb1 || cb2) in der .prop() - Funktion ausgewertet werden? .prop ('disabled',! (cb1 || cb2). Ich denke, dass ich das verstehe, aber ich bin mir nicht sicher, ob ich das tue. – Mdd