Foros del Web » Programando para Internet » Javascript »

cómo hago para cargar de contenido un form.submit()...

Estas en el tema de cómo hago para cargar de contenido un form.submit()... en el foro de Javascript en Foros del Web. holas holas, tengo un formulario en el que la gente debe llenar una serie de campos (para ingresar un curriculum). Ahora bien, al final los ...
  #1 (permalink)  
Antiguo 06/06/2007, 14:30
 
Fecha de Ingreso: mayo-2002
Ubicación: Mendoza ebria y montañosa
Mensajes: 165
Antigüedad: 22 años
Puntos: 0
cómo hago para cargar de contenido un form.submit()...

holas holas, tengo un formulario en el que la gente debe llenar una serie de campos (para ingresar un curriculum). Ahora bien, al final los botones que necesito son un "presentacion preliminar", "crear cuenta" y "borrar".

El asunto es que yo verifico con javascript que hayan llenado algunos campos que son obligatorios entonces los 2 botones (preliminar y crear) pasan por un onclick="validar (this.form)" y este script que llaman los botones hace la verificación y cuando determina que todo está correcto hace un form.submit(); y lo manda a la dirección del action que yo había puesto en el <form action="crear_cuenta2.php" method="post">... bien hasta acá todo en orden, todo funciona.

El problema, je , es que al cerrar el script js con el form.submit();, la página a donde va después de llenado el formulario entiende que el botón que se apretó fue el de un submit normal... cómo hago para que esto no suceda y me respete el botón desde el cual fue llamado?? a)preliminar, b)crear... porque depende de ese botón en la próxima página se verá una presentación preliminar o se guardarán los datos en la base de datos...

se entiende, los botones serían los siguientes:

Código HTML:
<input type="button" name="preliminar" value="Presentacion preliminar del curriculum" onclick="validar(this.form)" />
<input type="button" name="crear" value="Crear cuenta" onclick="validar(this.form)" />
<input type="reset" value="Borrar" /> 
No me gusta preguntar cosas que estoy seguro ya se han respondido antes, pero estuve buscando y no encontré respuestas...

desde ya cha' gracias,
chapulín
  #2 (permalink)  
Antiguo 07/06/2007, 08:20
 
Fecha de Ingreso: mayo-2002
Ubicación: Mendoza ebria y montañosa
Mensajes: 165
Antigüedad: 22 años
Puntos: 0
Re: cómo hago para cargar de contenido un form.submit()...

Boinas, cómo andamio gente forera??!

me seguí paseando por estos lares y me topé con este post de Caricatos, que pareciera ahora haberse adelantado en el tiempo y estar respondiéndome a mí (je, je):

Cita:
Al ver la línea "form.submit()" supe que no validabas bien, y seguramente uses un botón del tipo "button"...

Las validaciones bien hechas llaman a la función validadora desde el evento submit del formulario... y si esta función devuelve false "no pasa la validación" y se cancela el envío del formulario.

Estructura:

<form onsubmit="return validar(this)"...
...
<button type="submit">enviar</button>
...
</form>

y la función "validar" siempre debe devolver un valor booleano (true/false):
funcion validar(f) {
return (f.dato.value != "");
}
... Bien, gracias Caricatos del pasado, has sido enviado para cumplir una misión en el futuro, debes socorrer a un ignorante del js , jeje... bien, un poco para esto existen los foros y el gran archivo de las dudas que nos han ido surgiendo a todos los que formamos parte de esta comunidad... me parece excelente y he aprendido muchísimo acá... creo que por esto he dejado la facultad... ustedes tienen la culpa, jajaja

Bueno, bueno, el asunto es que seguí los consejos de Caricatos y le agregué un par de cositas más que busqué por aquí mismo y vuaaaalá: todo anduvo!!

La cosa quedaría así para otra gente del futuro que terminé dando con estas líneas:

el script de js (entre las etiquetas del head):

Código:
<script language="javascript" type="text/javascript">
function validar(form)
{
  if (form.nombre.value == "")
  { alert("NO INGRESO SU NOMBRE"); form.nombre.focus(); return false; }

  if (form.apellido.value == "")
  { alert("NO INGRESO SU APELLIDO"); form.apellido.focus(); return false; }
  
  if (form.documento_tipo.value == "")
  { alert("NO INGRESO EL TIPO DE DOCUMENTO"); form.documento_tipo.focus(); return false; }
  
  if (form.documento_numero.value == "")
  { alert("NO INGRESO SU NUMERO DE DOCUMENTO"); form.documento_numero.focus(); return false; }
  
  if (form.cuil.value == "")
  { alert("NO INGRESO EL CUIL"); form.cuil.focus(); return false; }
  
  if (form.sexo.value == "")
  { alert("NO INGRESO SU SEXO"); form.sexo.focus(); return false; }
  
  if (form.estado_civil.value == "")
  { alert("NO INGRESO SU ESTADO CIVIL"); form.estado_civil.focus(); return false; }
  
  if (form.domicilio.value == "")
  { alert("NO INGRESO SU DOMICILIO"); form.domicilio.focus(); return false; }
  
  if (form.telefono.value == "")
  { alert("NO INGRESO SU TELEFONO"); form.telefono.focus(); return false; }
  
  return true;
}
</script>
acá es donde tuve que meter mano tamibién, porque entonces los returns deben decirnos lo que se devuelve en el valor booleano, es decir un verdadero/falso... si falta llenar algún campo devuelve falso y el cursor se sitúa en el tal campo vacío, de lo contrario si todo está correctamente llenado, hay un return true, que posibilita que el formulario se envíe finalmente...

la etiqueta del formulario quedaría así:

Código HTML:
<form action="pag2.php" method="post" onsubmit="return validar(this)"> 
y, por último los botones al final así:

Código HTML:
<input type="submit" name="preliminar" value="Presentacion preliminar del curriculum" />
<input type="submit" name="crear" value="Crear cuenta" />
<input type="reset" value="Borrar" /> 
así resultó todo, muchas gracias y espero esto le sirva a otra gente,

adióche,
chapulín
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 07:20.