Ver Mensaje Individual
  #6 (permalink)  
Antiguo 06/08/2014, 16:32
uberalle
 
Fecha de Ingreso: agosto-2014
Mensajes: 2
Antigüedad: 9 años, 9 meses
Puntos: 1
Respuesta: Formulario con Html5

El action se ejecuta siempre y cuando el 'onsubmit' no retorne falso. Si el action no se te ejecuta es que seguramente tengas puesto 'return false' en el 'onsubmit'.La manera de controlarlo es poniendo una condición, si la funcion que valida devuelve error al validar, que el onsubmit retorne falso para que el action no se ejecute; en caso de que se validen bien los datos, que retorne true.
Te recomiendo no añadir el JavaScript en el propio html, sino que todo el JavaScript lo incluyas en un archivo aparte. Es lo que se denomina JavaScript no Obstructivo o no molesto. Esto se haría generando los eventos en el documento aparte.

Un ejemplo de todo esto:

Código HTML:
<!DOCTYPE html>
<html lang="es" xml:lang="es" xmlns="http://www.w3.org/1999/xhtml">
	<head>
		<meta charset="utf-8" />
		<title>Mi primer formulario</title>
		<script src="formulario.js"></script>
  	</head>
  	<body>
	       	<form id="formulario" action="enviar.php" >
                        <label for="nombre">Nombre</label><input id="nombre" name="nombre" type="text" />
			<input id="boton-aceptar" name="boton-aceptar"  type="submit" value="Aceptar" />
		</form>
    </body>
</html> 
El documento JavaScript sería:
Código Javascript:
Ver original
  1. function validaFormulario() {
  2.     //Aquí van las condiciones que quieras añadir para que el formulario sea válido.
  3. }
  4.  
  5. //Este es el evento load (cuando la página se carga); esto es necesario para que el javascript pueda reconocer los elementos del html. Si no se aplicara esta función, habría que añadir el código después del formulario.
  6. window.onload = function() {
  7.     var miFormulario = document.getElementById('formulario');
  8.     // Este es el evento onsubmit del formulario, dentro de la función se añade lo mismo que se añadiría en el onsubmit que se escribe en html.
  9.     miFormulario.onsubmit = function() {
  10.         if (validaFormulario() == false) {
  11.             return false;
  12.         }
  13.     }
  14.    
  15. }

Aunque para culminar quiero recordarte que lo más adecuado es que las condiciones para rellenar un formulario se evalúen en el servidor, ya sea con php o cualquier otro lenguaje. El motivo es que si un visitante no posee javascript, podrá enviar el formulario con los datos sin validar; o incluso, ya dependiendo como hayas desarrollado todo el formulario, podría no funcionarle correctamente. Comprendo que aún no sabes php y que deseas hacer un formulario de un modo sencillo, solo te comento esto para que sepas los pros y los contras de validar un formulario desde javascript y no desde el lenguaje del servidor. Un saludo.

Última edición por uberalle; 06/08/2014 a las 16:44