Formulario HTML acción y onsubmit problemas


Quiero ejecutar la validación de usuario de javascript en algunas entradas de cuadro de texto.

El problema que tengo es que mi formulario tiene la acción de ir a una nueva página dentro de nuestro sitio, y el atributo onsubmit nunca ejecuta la función javascript.

¿Hay una solución mejor, o una que funcione con el siguiente código: NOTA: el archivo javascript está escrito correctamente y funciona si cambia la acción a checkRegistration().

Es simplemente un problema con la ejecución de acción y javascript.

<form name="registerForm" action="validate.html" onsubmit="checkRegistration()" method="post">
    <!-- textboxes here -->
    <!-- and submit button -->
</form>
Author: franzlorenzon, 2013-04-28

2 answers

Debe detener el procedimiento de envío devolviendo false en {[3] }sububmit callback.

<script>
function checkRegistration(){
    if(!form_valid){
        alert('Given data is not correct');
        return false;
    }
    return true;
}
</script>
<form onsubmit="return checkRegistration()"...

ACTUALIZACIÓN:

Aquí tiene un ejemplo completamente funcional, el formulario se enviará solo cuando escriba Google en la entrada, de lo contrario devolverá el error:

<script>
function checkRegistration(){
    var form_valid = (document.getElementById('some_input').value == 'google');
    if(!form_valid){
        alert('Given data is incorrect');
        return false;
    }
    return true;
}
</script>
<form onsubmit="return checkRegistration()" method="get" action="http://google.com">
    Write google to go to google..<br/>
    <input type="text" id="some_input" value=""/>
    <input type="submit" value="google it"/>
</form>
 50
Author: s3m3n,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-04-28 13:18:52

Intenta

onsubmit="return checkRegistration()"
 7
Author: Arun P Johny,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-04-28 12:21:45