2011-12-26 8 views
5

presentar He un botón de enviar la siguiente manera:validación en el botón

<input class="create_button" name="commit" 
     onclick="return validate_activity();" 
     type="submit" value="Save"> 

me encontré con que este botón siempre enviará la solicitud al servidor sea cual sea el validate_activity() devuelven verdadero o falso?

¿Cuál es el problema aquí?

ACTUALIZACIÓN

En realidad, he cometido un error en mi validate_activity(), me hace pensar que regresó falsa, pero no.

+1

Se puede publicar lo que tiene en 'validate_activity()'? –

+0

Correcto, cometí un error en mi validate_activity(). – Rocky

Respuesta

10

intente hacer lo mismo sin devolución, p. onclick="validate_activity();" y comprobar si su función retorna falso en caso de invalidez

+1

¿Esto también funcionará en un envío

+0

Esto no evitará que nadie envíe el formulario, p. presionando Enter en un campo de entrada de la misma forma. – cyanbeam

1

Debe utilizar el evento submit de la forma para la validación ..

<form action="..." method="..." onsubmit="return validate_activity()"> 
    <...> 
    <input class="create_button" name="commit" type="submit" value="Save" /> 
    <...> 
</form> 
2

Supongo que el problema es onclick="return validate_activity();", esta instrucción de retorno es ejecutado cuando se hace clic el botón de enviar (no devuelve falso). La forma correcta es onclick="validate_activity();" y devuelve falso en la función validata_activity, que detendrá la acción de envío predeterminada.

3
<input type="button" name="commit" 
value="Save" 
onclick="validate_activity(myform)" /> 

Dentro del Javascript, cuando validado, hacer form.submit() o de lo contrario devuelve falso.

Espero que esto ayude! Esto validará su formulario y lo enviará. Este envío fallará si Javascript está deshabilitado en su navegador.

si desea que el someterse a continuar incluso si el JavaScript está desactivado en el navegador del cliente (significa ninguna validación, pero se presentará), entonces

<input type="button" name="commit" 
value="Save" 
onclick="validate_activity(myform);return false;" /> 

espero ninguna validación no se debe golpear en absoluto. Pero entonces javascript es solo del lado del cliente y espero que tengas serios controles de cordura en el lado del servidor de todos modos y de muchos, creo que la gente lo usa para verificaciones de campo muy básicas.

2

Si está haciendo la validación del formulario y luego lo valida en el evento del botón onclick, la forma en que lo está intentando no tiene sentido, debería usarla en el evento <form></form>onsumbmit de esta manera.

<form action="someURL" method="post" onsubmit="return validate_activity();"> 

</form> 
2

Prueba esto ...

<form action="...." onsubmit="submitForm()" name="form"> 

<input type="submit" value="Save"> 

</form> 


function submitForm(){ 

    if(validationfails){ 

     return false; 
    } 
    else { 
     document.form.submit(); 
     return true; 
    } 
} 
Cuestiones relacionadas