Bien, entonces quiero validar un formulario con Javascript antes de validarlo con PHP. Si la función Javascript, llamémosla validate (), detecta un error, quiero evitar que se ejecute PHP.

Solo sé una forma de saber cuál me permitiría hacerlo: usar un enlace en lugar de un botón de envío, como este:

<a href="javascript:validate()">Login </a>

Esta podría ser la función validate ():

function validate() {
//Do all the validation
document.form_name.submit(); }

Sin embargo, hay un problema con esto: mis scripts PHP no pueden saber cuándo se envía exactamente el formulario. Sin Javascript, haría esto:

if ($_POST[button_name]) 

Ahora, sin embargo, no hay un botón de envío, por lo que la expresión se vuelve obsoleta.

Entonces, en resumen, mi pregunta es:

¿Cómo puedo validar un formulario con Javascript y evitar que se ejecute la validación de PHP si hay un error?

3
LonelyWebCrawler 13 jul. 2011 a las 20:40

4 respuestas

La mejor respuesta

Debería tener un botón de envío, para que incluso los usuarios sin js habilitados puedan enviar el formulario, y php lo validará.

Con js puede evitar el envío del formulario, luego verificar la validación y enviarlo después de haberlo validado correctamente.

3
Jose Faeti 13 jul. 2011 a las 16:43

Simplemente no envíe el formulario a menos que sea válido.

 function validate() {

     var isValid = true;
     //Do all the validation
     if(isValid)
     {
        document.form_name.submit(); 
     }
    }
1
scrappedcola 13 jul. 2011 a las 16:44

Solo hay una forma que conozco que me permitiría hacerlo: usar un enlace en lugar de un botón de enviar

Hay un evento submit en los formularios exactamente para este propósito. Engancha el evento y, si el formulario no es válido, cancela el envío. Entonces puedes usar un botón de enviar.

2
T.J. Crowder 13 jul. 2011 a las 16:43

Use onsubmit = "return validate ()" para validar el formulario html o envíe un formulario usando submit (); un método javascript

0
Hiren Kubavat 8 ene. 2014 a las 12:34