Foros del Web » Programando para Internet » Javascript »

como hago este onsubmit?

Estas en el tema de como hago este onsubmit? en el foro de Javascript en Foros del Web. hola tengo un form y antes de submit me llama una funcion onsubmit="valida()" dependendo si esta un texto sin llenar no me envie (submit="otra pagina") ...
  #1 (permalink)  
Antiguo 04/12/2004, 16:32
 
Fecha de Ingreso: noviembre-2004
Mensajes: 67
Antigüedad: 19 años, 5 meses
Puntos: 0
como hago este onsubmit?

hola tengo un form y antes de submit me llama una funcion onsubmit="valida()"

dependendo si esta un texto sin llenar no me envie (submit="otra pagina")

tengo la funcion asi:

function valida()
{
var bRes = true;
if (CANT.value == "")
{
alert("Debe escibir un monto para la transaccion");
CANT.focus();
bRes = false;
}
else {
if (OPC[0].checked == false & OPC[1].checked == false )
{
alert("Debe marcar una de las dos opciones, abona o descuenta.");
bRes = false;
}
}
return bRes;
}


bRes = false me indica que ocurrio alguna anomalia

  #2 (permalink)  
Antiguo 04/12/2004, 17:11
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola izzy28:

No me he enterado de lo que quieres...

<form action="otra pagina" onsubmit="return valida()" ... >

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 04/12/2004, 19:32
 
Fecha de Ingreso: noviembre-2004
Mensajes: 67
Antigüedad: 19 años, 5 meses
Puntos: 0
<form action="otra pagina" onsubmit="return valida()" ... >

osea no quiero que se vaya a "otra pagina" si el valida() encuentra que hay algo sin "rellenar"

me entiendes caricatos??
  #4 (permalink)  
Antiguo 05/12/2004, 01:07
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola otra vez:

Para evitar que se envíe un formulario, hay que hacer que el evento onsubmit reciba "false" (sin las comillas), entonces el envío se cancela.
Si por el contrario recibe true (o nada) el formulario se envía normalmente.
Entonces tienes que hacer una función que devuelva uno de esos valores.

¿Es eso lo que quieres saber?

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #5 (permalink)  
Antiguo 05/12/2004, 11:32
 
Fecha de Ingreso: noviembre-2004
Mensajes: 67
Antigüedad: 19 años, 5 meses
Puntos: 0
hola pero como hagoi para que la funcion reciba false???
por ejemplo tengo una variable en la funcion bRes que va a tener false si ocurrio algo mal. y resturn la devuelve cierto??

me puedes guiar como se hace por que no me funciona envia el formulario igual.


out.println("<form name='form' method='get' action='Grabar' onsubmit=return verifica()>");


function verifica()
{
var bRes = true;
if (CANT.value == "")
{
alert("Debe escibir un monto para la transaccion");
CANT.focus();
bRes = false;
}
else {
if (OPC[0].checked == false & OPC[1].checked == false )
{
alert("Debe marcar una de las dos opciones, abona o descuenta.");
bRes = false;
}
}
return bRes;
}
  #6 (permalink)  
Antiguo 05/12/2004, 11:55
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Hola izzy28

Lo que pones en el evento onsubmit debe ir entre comillas, porque si no solo cogerá la primera palabra. En general los valores de las propiedades deberían ir entrecomillados.

out.println("<form name='form' method='get' action='Grabar' onsubmit='return verifica()'>");

Espero que te funcione. Saludos,
  #7 (permalink)  
Antiguo 05/12/2004, 11:59
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola otra vez:

Para empezar, tendría que estar entrecomillado todo lo que va en el onsubmit, ya que tal como lo tienes equivale a onsubmit=return
cámbialo por onsubmit='return valida()'
Tal vez valga poner onsubmit='valida()'

Ups... mientras contestaba, vi que se me adelantó JavierB (¡Hola !)
Pero me parece que respondendo lo mismo que yo.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #8 (permalink)  
Antiguo 05/12/2004, 12:04
 
Fecha de Ingreso: noviembre-2004
Mensajes: 67
Antigüedad: 19 años, 5 meses
Puntos: 0
Hola JavierB
igual le puse comillas y me envia igual el formualrio que sera??

out.println("<form name='form' method='get' action='Grabar' onsubmit='return verifica()'>");

  #9 (permalink)  
Antiguo 05/12/2004, 12:17
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Bueno, sigamos intentandolo.

Revisa esta línea:

if (OPC[0].checked == false && OPC[1].checked == false )

Si no es un error al poner el mensaje, ahí te falta un &

Por cierto... buen choque caricatos

Saludos,

Última edición por JavierB; 05/12/2004 a las 12:20
  #10 (permalink)  
Antiguo 05/12/2004, 12:44
 
Fecha de Ingreso: noviembre-2004
Mensajes: 67
Antigüedad: 19 años, 5 meses
Puntos: 0
mira JavierB corregi el & que me faltaba, pero me di cuenta que antes de enviar el formulariome aparece un signo de exclamacion, lo pare antes de enviar y me di cuenta que dice CANT no esta definido.


out.println("<form name='form' method='get' action='Grabar' onsubmit='return verifica()'>");


function verifica()
{
var bRes = true;
if (CANT.value == "")
{
alert("Debe escibir un monto para la transaccion");
CANT.focus();
bRes = false;
}
else {
if (OPC[0].checked == false && OPC[1].checked == false )
{
alert("Debe marcar una de las dos opciones, abona o descuenta.");
bRes = false;
}
}
return bRes;
}
  #11 (permalink)  
Antiguo 05/12/2004, 12:59
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
O sea que el problema estaba en otro sitio...

CANT es un campo del formulario, ¿verdad?...
Entonces deberías poner document.forms.elFormulario["CANT"].value
También para darle el foco tienes que poner la linea de esa manera, y con OPC lo mismo.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #12 (permalink)  
Antiguo 05/12/2004, 13:54
 
Fecha de Ingreso: noviembre-2004
Mensajes: 67
Antigüedad: 19 años, 5 meses
Puntos: 0
me resulto pero me sale otro error:

document.forms.form["OPC[0]"].checked == false

me reclama por que dice es null o no es un objeto mi ultima pregunta estara bien como lo puse?: ..form["OPC[0]"].checked


  #13 (permalink)  
Antiguo 05/12/2004, 14:00
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
ReReHola.

izzy28 si pusieras el formulario, a lo mejor a alguien se le encendía la luz.

Saludos,
  #14 (permalink)  
Antiguo 05/12/2004, 14:06
 
Fecha de Ingreso: noviembre-2004
Mensajes: 67
Antigüedad: 19 años, 5 meses
Puntos: 0
estoy de acuerdo aqui va?

<form name="form" method="get" action="Grabar" onsubmit="return verifica(this)">
<%
out.println("<input type='text' name='CANT' size='10'>");
%>
<input type="hidden" name="oculto" value='<%=ario%>'>
<%
out.println("<br>");
out.println("<input type='radio' name='OPC' value='abonar'>");
out.println("Abonar");
out.println("<br>");
%>
<input type="radio" name="OPC" value="descontar" onclick="return valida(<%=sal%>)">
<%
out.println("Descontar");
out.println("<br>");
out.println("<input type='submit' name='boton' value='Grabar'>");
out.println("</form>");
  #15 (permalink)  
Antiguo 06/12/2004, 01:45
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola otra vez:

Creo que estas son las formas correctas.

document.forms.form["OPC"][0].checked == false;
document.forms.form.OPC[0].checked == false;

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #16 (permalink)  
Antiguo 09/12/2004, 13:27
 
Fecha de Ingreso: noviembre-2004
Mensajes: 67
Antigüedad: 19 años, 5 meses
Puntos: 0
Hola caricatos perdona en la demora de la respuesta es que me entro un virus , ahora probe el codigo que me pusiste y adivina:

GRANDE MAESTRO POR LA AYUDA SALIO TODO OK, NOS VEMOS EN LA PROXIMA BYE

document.forms.form["OPC"][0].checked == false;
document.forms.form.OPC[0].checked == false;

  #17 (permalink)  
Antiguo 09/12/2004, 15:40
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284


¡Magnífico...!

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 07:16.