Foros del Web » Programando para Internet » Javascript »

document.validacion.submit() no funciona!

Estas en el tema de document.validacion.submit() no funciona! en el foro de Javascript en Foros del Web. Lo que quiero hacer es lo siguiente. Código HTML: http://www.desarrolloweb.com/articulos/ejemplos/javascript/validar-fomulario.html Completen los datos, como veran al completar todo y oprimir enviar, por mas que el ...
  #1 (permalink)  
Antiguo 26/01/2009, 02:23
Avatar de Fernarey1810  
Fecha de Ingreso: noviembre-2008
Mensajes: 214
Antigüedad: 15 años, 5 meses
Puntos: 1
Pregunta document.validacion.submit() no funciona!

Lo que quiero hacer es lo siguiente.
Código HTML:
http://www.desarrolloweb.com/articulos/ejemplos/javascript/validar-fomulario.html
Completen los datos, como veran al completar todo y oprimir enviar, por mas que el boton es type=button hace una recarga de la pagina como si fuese que se esta enviando la pagina. El problema es que quiero hacer lo mismo y no me funciona:S.

// el formulario se envia
alert("Muchas gracias por enviar el formulario");
document.validacion.submit();

No puedo poner el codigo completo porque no entra, y si lo subo a rapidshare dicen que lo pegue aca. pero no permiten pegar codigos muy largos.
Ahi va una porcion de codigo, la mas importante digamos:

Archivo altaUsuario.php
Código PHP:
<html>
<
head>
<
title>Registro de Socios</title>
<
meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<
link rel="stylesheet" type="text/css" href="CSS/estiloRegistro.css" media="screen">
<
link rel="stylesheet" type="text/css" media="all" href="JavaScript/JS Calendar-1.0/skins/aqua/theme.css">
<
script type="text/javascript" src="JavaScript/validacion.js"></script>
<script type="text/javascript" src="JavaScript/JS Calendar-1.0/calendar.js"></script>
<script type="text/javascript" src="JavaScript/JS Calendar-1.0/lang/calendar-es.js"></script>
<script type="text/javascript" src="JavaScript/JS Calendar-1.0/calendar-setup.js"></script>
<script type="text/javascript">
    window.onload = function() {
        Calendar.setup({
        inputField: "fecha",
        ifFormat: "%d / %m / %Y",
        button: "selector"
        });
    }
</script>

// Asi empieza el formulario.
<form method="post" name="validacion">
                                  <ul>
                                      <li class="izquierda">
                                          <label class="titulo" for="usuario">Datos personales: <span class="requerido">*</span></label> 
                                              <div></div>
// Asi termina el formulario
<input id="alta" type="button" name="enviar_registro" value="Darme de alta &rarr;" onClick="muestra_error();">
                                          <input type="reset" name="submit" value="Restablecer">                                      </li>
                                  </ul>                        
                              </form> 
Y el codigo javascript validacion.js
function permite(elEvento, permitidos, maxCaracter, nombreId) {
}
function actualizaInfo(maxCaracter, id, nombreId) {
}
function muestraOculta(id, nombreId) {
}
function muestra_error() {
// Validación de Usuario
valor = document.getElementById("nombre").value;
if (valor == null || valor.length == 0 || /^\s+$/.test(valor)) {
alert("Complete su identificación como Usuario por favor.");
document.validacion.idUsuario.focus();
return 0;
}
// Validación del Año de Nacimiento
// Validación del Teléfono
// Todas las validaciones.. y cuando llego al final, es decir todo correcto (lo anterior anda todo perfecto), va esto
// el formulario se envia
alert("Muchas gracias por enviar el formulario");
document.validacion.submit();
}
El problema es que no logo hacer que recargue la pagina, como en el ejemplo que pase al principio. Si en el <form pongo el action="index.php" por ej tampoco anda. CACAROTO APARECE :P jeje
  #2 (permalink)  
Antiguo 26/01/2009, 02:46
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: document.validacion.submit() no funciona!

Hola:

Te recomiendo que uses siempre botones del tipo submit para enviar formularios, ya que si tus visitantes tienen javascript deshabilitado nunca podrán enviar el formulario, y en el caso contrario, se cancela el envío simplemente devolviendo false al evento: onsubmit="return validar(this)"
En realidad, lo óptimo es una doble validación (en el navegador y en el server)

Con pocos cambios podrías smplemente poner return false (aunque creo que podría valerte como lo tienes devolviendo 0, y en vez de la instrucción submit() para el envío, poner return true (o simplemente no poner nada)... te paso un artículo: El abc de los formularios

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 26/01/2009, 05:07
Avatar de Fernarey1810  
Fecha de Ingreso: noviembre-2008
Mensajes: 214
Antigüedad: 15 años, 5 meses
Puntos: 1
Pregunta Respuesta: document.validacion.submit() no funciona!

Caricatos podrias responderme por favor porque no funciona simplemente y como lo hago funcionar?. Intente aplicar un ejemplo que vi en el link que me pasaste , una parte q dice Junter todo y da este ejemplo
Código PHP:
function validar(formulario) {
    
Ok =    (formulario.nombre.value != "")    &&
        (
formulario.selector.value != "")    &&
        (
seleccionados(formulario.selector) > 1)    &&
        (
chequeado(formulario.radios)    &&
        (
marcados(formulario["idiomas[]"]) > 0)
    return 
Ok;
}

Y la forma de uso es:

<
form onsubmit="return validar(this)" 
Esto que estoy haciendo es para presentar mi tesis, por ende JavaScript va a estar ACTIVADO CUANDO LO EXPONGA.
Podrias mirar este ejemplo por favor,
Código HTML:
http://www.desarrolloweb.com/articulos/ejemplos/javascript/validar-fomulario.html
lo puse en el primer link, como veras cuando termina de completar los datos, realiza el envio con type="button" y hace una recarga como si haria el type=submit correctamente. Si yo pongo como boton submit no puedo hacer las validaciones en javascript de esa forma, tendria que modificar muchas cosas y ya estoy un poco cansadito ( por no decir podri...). Creo que es mas claro que el agua la pregunta, podrias no responderme diciendome "YO LO HARIA DE esta tal y tal forma". Respondeme en base a lo que te pregunto. Hago todo igual al ejemplo pavo ese que ves en desarrollo web, pero no me anda:S, una vez que todos los datos estan validados correctamente, no se ejecuta document.validacion.submit(), porque?
  #4 (permalink)  
Antiguo 26/01/2009, 05:31
Avatar de Fernarey1810  
Fecha de Ingreso: noviembre-2008
Mensajes: 214
Antigüedad: 15 años, 5 meses
Puntos: 1
Respuesta: document.validacion.submit() no funciona!

Necesito hacerlo de esta manera porque si hago type submit se va a recargar a cada rato , ayuda plis
  #5 (permalink)  
Antiguo 26/01/2009, 08:50
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: document.validacion.submit() no funciona!

Cita:
Iniciado por Fernarey1810 Ver Mensaje
Necesito hacerlo de esta manera porque si hago type submit se va a recargar a cada rato , ayuda plis
Bueno, bueno... ¡suspendido/suspenso!

Te intenté ayudar, pero estás demostrando muy pocos conocimientos... si pones un poco de atención puedes enterarte de cosas básicas... si hasta sería mejor que estuviese javascript desactivado...

Me reitero en mi primera respuesta (usar botón submit...) y me niego a dar respuestas "chapuzas".

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #6 (permalink)  
Antiguo 26/01/2009, 09:37
Avatar de Fernarey1810  
Fecha de Ingreso: noviembre-2008
Mensajes: 214
Antigüedad: 15 años, 5 meses
Puntos: 1
Pregunta Respuesta: document.validacion.submit() no funciona!

Pero no podes poner hace esto asi y asi y ponerme pone RETURN y listo funciona:S. No podes ser mas explicito en tus respuestas, estuve revisando toda la noche este error, si miras el codigo que pongo en el link anterior, porque funciona?, podes decirme porque en desarrollo web funciona la pagina de ejemplo ese y a mi no me funciona, ES MAS SI COPIO Y PEGO EL CODIGO QUE ESTA EN LA PAGINA, A MI SERVIDOR WAMP, NO ANDA TAMPOCO. PODRIAS PONER COMO SERIA EL CODIGO POR FAVOR , NO ME PONGAS PONE RETURN Y ANDA.
  #7 (permalink)  
Antiguo 26/01/2009, 22:19
Avatar de Fernarey1810  
Fecha de Ingreso: noviembre-2008
Mensajes: 214
Antigüedad: 15 años, 5 meses
Puntos: 1
De acuerdo Respuesta: document.validacion.submit() no funciona!

YA TAAAAAAAAAAA CACATUA , LO SOLUCIONEEEEE JEJEJE
SE CORREGIA ASI
COMIENZO DEL FORM
ESTABA MAL
<form name="validacion" action="index.php" method="post">

ESTA BIEN
<form onSubmit="return muestra_error(this);" name="validacion" action="index.php" method="post">


FINAL DEL FORM
Estaba mal
<input id="alta" type="button" name="Enviar" value="Darme de alta &rarr;">
Esta bien
<input id="alta" type="submit" name="Enviar" value="Darme de alta &rarr;">

Codigo javascript
ESTABA MAL
function muestra_error( ) {
}
ESTA BIEN: se le pasa el nombre del formulario como parametro,
function muestra_error(validacion) {
}
  #8 (permalink)  
Antiguo 26/01/2009, 22:48
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: document.validacion.submit() no funciona!

Hola:

Me alegro de que ya esté, pero tengo que hacer un par de puntualizaciones (aparte del nick...)

Cita:
Iniciado por Fernarey1810 Ver Mensaje
ESTA BIEN: se le pasa el nombre del formulario como parametro,
function muestra_error(validacion) {
}
Lo que se pasa no es el nombre sino el formulario completo (aunque le pongas el mismo nombre)... lo que yo acostumbro a hacer es poner solo una f, y para referirse a los controles se usa esa f seguida del nombre del control...

function muestra_error(f) {
return (f.selector.value != ""); // solo es un ejemplo
}

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #9 (permalink)  
Antiguo 26/01/2009, 23:19
Avatar de Fernarey1810  
Fecha de Ingreso: noviembre-2008
Mensajes: 214
Antigüedad: 15 años, 5 meses
Puntos: 1
Pregunta Respuesta: document.validacion.submit() no funciona!

ajjaja una broma el nick, antes puse CACAROTO = Goku tambien jeje q ayudaba a la gente jajaa Y en cuanto a los detalles de (formulario), bueno ya ire aprendiendo todos estos detalles, informacion presisa digamos

Che mira esto:
Si yo pongo esto anda, es decir es una de las validaciones, muestra el error y no hace ningun envio de la pagina,
Código:
// Validación de la identificación Sexual
	opciones = document.getElementsByName("opciones");
	var seleccionado = false;
	for (var i = 0; i < opciones.length; i++) {
		if (opciones[i].checked) {
			seleccionado = true;
			break;
		}
	}
	if (!seleccionado) {
		alert("Complete su identificación Sexual por favor.");
		return false;
	}
PERO SI YO PONGO ESTO
Código:
// Validación de la identificación Sexual
	opciones = document.getElementsByName("opciones");
	var seleccionado = false;
	for (var i = 0; i < opciones.length; i++) {
		if (opciones[i].checked) {
			seleccionado = true;
			break;
		}
	}
	if (!seleccionado) {                
		alert("Complete su identificación Sexual por favor.");
                document.validacion.focus();
		return false;
	}
NO FUNCIONA, ES DECIR LA VALIDACION ES COMO QUE DEVUELVE TRUE, Y ME ENVIA LA REGISTRACION:s, TENES IDEA PORQUE HACE ESTO?, EN VEZ DE ESTABLECER EL FOCO SOBRE EL RADIO BUTTON?.
  #10 (permalink)  
Antiguo 26/01/2009, 23:23
Avatar de Fernarey1810  
Fecha de Ingreso: noviembre-2008
Mensajes: 214
Antigüedad: 15 años, 5 meses
Puntos: 1
Respuesta: document.validacion.submit() no funciona!

if (!seleccionado) {
alert("Complete su identificación Sexual por favor.");
document.validacion.sexo.focus();
return false;
}
me falto .sexo.focus();
  #11 (permalink)  
Antiguo 26/01/2009, 23:29
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: document.validacion.submit() no funciona!

Hola:

Lo que creo que puede ser es que el foco no lo puede tener todo el formulario sino alguno de los controles que lo admita (no se podría en los "hidden")... si te fijas en la consola de errores (la tienen casi todos los navegadores, seguro que indica que hay error, por lo que se corta el flujo de las instrucciones sin llegar a la cancelación, y por consiguiente el form se envía... debes darle el foco a los controles.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #12 (permalink)  
Antiguo 26/01/2009, 23:31
Avatar de Fernarey1810  
Fecha de Ingreso: noviembre-2008
Mensajes: 214
Antigüedad: 15 años, 5 meses
Puntos: 1
De acuerdo Respuesta: document.validacion.submit() no funciona!

En reliadad lo uso igual sin colocarle esa linea , no hay problema, no es nada para morirse sino que es raro nomas.
  #13 (permalink)  
Antiguo 26/01/2009, 23:36
Avatar de Fernarey1810  
Fecha de Ingreso: noviembre-2008
Mensajes: 214
Antigüedad: 15 años, 5 meses
Puntos: 1
Respuesta: document.validacion.submit() no funciona!

MIRA EL ERROR JAJAJA QUE TIRA LA CONSOLA
Error: uncaught exception: [Exception... "Cannot modify properties of a WrappedNative" nsresult: "0x80570034 (NS_ERROR_XPC_CANT_MODIFY_PROP_ON_WN)" location: "JS frame :: chrome://global/content/bindings/autocomplete.xml :: onxblpopuphiding :: line 834" data: no]

Error: document.validacion.sexo.focus is not a function
Archivo de origen: http://localhost/Seminario/JavaScript/validacion.js
Línea: 95


if (!seleccionado) {
alert("Complete su identificación Sexual por favor.");
LINEA 95--> document.validacion.sexo.focus();
return false;
}
  #14 (permalink)  
Antiguo 27/01/2009, 02:22
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: document.validacion.submit() no funciona!

Hola:

Las posibilidades para que haya error, siempre que el control exista es que sea inaccesible como los hidden como expuse antes, o en el caso de elementos "repe", la falta del índice... por ejemplo si ese sexo son radios, uno masculino/femenino (no voy a referirme a ambiguedades), entonces debes dar el foco a "M" o "F"...

Código:
document.validacion.sexo[0].focus();
Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:59.