2012-04-05 19 views
11

¿Cómo habilitar el botón de enviar en mi formulario HTML y deshabilitar si la casilla de verificación no se marcó?¿Activar/desactivar el botón de enviar si la casilla de verificación está marcada/desmarcada?

¿Qué hay de malo en este código?

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

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

La casilla de verificación

<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

posible duplicado de [¿Cómo desactivo un botón de enviar cuando casilla de verificación es desmarcar?] (Http://stackoverflow.com/questions/5458531/how- do-i-disable-a-submit-button-when-checkbox-is-uncheck) –

Respuesta

12

Cambiar el código HTML para esto:

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

razón no funciona: usted no está pasando su función nada. En realidad, debido a que no ha usado paréntesis con el nombre de la función, no ha llamado a la función en absoluto. Pasarlo this en el contexto del atributo de evento HTML onclick significa que está pasando una referencia al objeto DOM del elemento, que le da acceso a su propiedad checked.

+2

¿Podría volver a ingresar su pregunta para incluir el resto de la fuente del formulario (el HTML)? Y cualquier otro JavaScript que puedas estar usando? –

3

es necesario incluir los parámetros: onClick="EnableSubmit()"

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