2012-04-05 35 views
11

Wie aktiviere ich den Submit-Button in meinem HTML-Formular und deaktiviere, wenn Checkbox deaktiviert wurde?Schaltfläche "Senden" aktivieren/deaktivieren, wenn das Kontrollkästchen aktiviert/deaktiviert ist?

Was ist falsch an diesem Code?

EnableSubmit = function(val) 
{ 
    var sbmt = document.getElementById("Accept"); 

    if (val.checked == true) 
    { 
     sbmt.disabled = false; 
    } 
    else 
    { 
     sbmt.disabled = true; 
    } 
}      

Das Kontrollkästchen

<td width="30%">Do you accept Terms of Service agreement?</td> 
<td width="10px" style="min-width: 10px"></td> 
<td width="70%"> 
    <input type="checkbox" name="TOS" value="Accept" onClick="EnableSubmit"> I agree to Terms of Service agreement. 
</td> 
+0

möglich Duplikat [Wie deaktiviere ich eine Absenden-Button, wenn Checkbox deaktivieren ist?] (Http://stackoverflow.com/questions/5458531/how- do-i-disable-a-submit-button-wenn-checkbox-is-uncheck) –

Antwort

12

Ändern Sie Ihre HTML dazu:

<td width="30%">Do you accept Terms of Service agreement?</td> 
<td width="10px" style="min-width: 10px"></td> 
<td width="70%"> 
    <input type="checkbox" name="TOS" value="Accept" onClick="EnableSubmit(this)"> I agree to Terms of Service agreement. 
</td> 

Grund es nicht funktioniert: Sie vorbei nicht Ihre Funktion nichts. Da Sie keine Klammern mit dem Funktionsnamen verwendet haben, haben Sie die Funktion überhaupt nicht aufgerufen. Wenn Sie das Attribut this im Kontext des HTML-Ereignisattributsübergeben, bedeutet dies, dass Sie einen Verweis auf das DOM-Objekt des Elements übergeben und Ihnen Zugriff auf seine checked-Eigenschaft gewähren.

+2

Können Sie Ihre Frage erneut eingeben, um den Rest der Quelle für das Formular (den HTML-Code) einzubeziehen? Und jedes andere JavaScript, das Sie möglicherweise verwenden? –

3

Sie müssen die Parameter umfassen: onClick="EnableSubmit()"

<input type="checkbox" name="TOS" value="Accept" onClick="EnableSubmit()"> I agree to Terms of Service agreement. 
Verwandte Themen