2012-04-05 9 views
11

Come abilitare il pulsante di invio nel mio modulo HTML e disabilitare se la casella di controllo era deselezionata?Abilita/Disabilita pulsante Invia se la casella è selezionata/deselezionata?

Cosa c'è di sbagliato con questo codice?

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

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

La casella di controllo

<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

possibile duplicato di [Come faccio a disattivare il pulsante per inviare quando casella di controllo è deselezionare?] (Http://stackoverflow.com/questions/5458531/how- do-i-disable-a-submit-button-when-checkbox-is-uncheck) –

risposta

12

Cambiare il codice HTML a questo:

<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> 

ragione che non funziona: non sta passando la vostra funzione nulla. In realtà, poiché non hai usato le parentesi con il nome della funzione, non hai affatto chiamato la funzione. Passandolo a this nel contesto dell''attributo evento HTML onclick significa che stai passando un riferimento all'oggetto DOM dell'elemento, dandoti l'accesso alla sua proprietà checked.

+2

Potresti reinserire la tua domanda per includere il resto del codice sorgente per il modulo (HTML)? E qualsiasi altro JavaScript che potresti usare? –

3

è necessario includere i parametri: onClick="EnableSubmit()"

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