Foros del Web » Programando para Internet » Javascript »

Validacion de campos que detenga el envio

Estas en el tema de Validacion de campos que detenga el envio en el foro de Javascript en Foros del Web. Hola, tengo un .js que cuando ocurre el clic en el boton del formulario valida si todos los campos estan llenos y con datos validos. ...
  #1 (permalink)  
Antiguo 02/01/2005, 12:42
 
Fecha de Ingreso: julio-2004
Mensajes: 194
Antigüedad: 19 años, 10 meses
Puntos: 1
Validacion de campos que detenga el envio

Hola, tengo un .js que cuando ocurre el clic en el boton del formulario valida si todos los campos estan llenos y con datos validos. en caso contraio muestra un alerta.

Quiziera que al darle clic en el alerta se detega el envio del formulario para que el usuario pueda corregir.

Como se hace tal cosa???

Gracias de antemano!
__________________
"Hay Algo Activo en el piso de Abajo..."

K-Seraph Blog
  #2 (permalink)  
Antiguo 02/01/2005, 12:44
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 k-seraph

Puedes poner el formulario así:

<form action="algo.php" onsubmit="return validar()" />

y en la función de validación, detras de la alerta devuelves falso:

alert('algo va mal');
return false;

Espero que te sirva. Saludos,
  #3 (permalink)  
Antiguo 02/01/2005, 13:37
 
Fecha de Ingreso: julio-2004
Mensajes: 194
Antigüedad: 19 años, 10 meses
Puntos: 1
Si me sirve gracias. pero solo en IE y no he conseguido que funcion con FF.

Sera que FireFox no soporta esa funcion?
__________________
"Hay Algo Activo en el piso de Abajo..."

K-Seraph Blog
  #4 (permalink)  
Antiguo 02/01/2005, 13:50
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 de nuevo.

Muy curioso, se suponía que tendría que funcionar ¿Puedes poner el formulario y el código que están utilizando para probar?

Saludos,
  #5 (permalink)  
Antiguo 02/01/2005, 13:53
Avatar de Hurling  
Fecha de Ingreso: noviembre-2004
Ubicación: Córdoba-Argentina
Mensajes: 368
Antigüedad: 19 años, 5 meses
Puntos: 0
Yo estoy usando esto para validar campos impresindilbles, podes ampliar los condicionales, a mi me funciona bien, utilizo formail y solo se envia si se cumplen las validaciones.Saludos

Esto va en el Header:
Código:
<script language="JavaScript">
<!-- Hide

function test(form) {

if (form.nombre.value == ""){
alert("Por favor, introduzca su nombre!");return false;
}

if (form.email.value == "" || 
form.email.value.indexOf('@', 0) == -1){
alert("Su dirección de correo no es válida!");return false;
}

if (form.apellido.value == ""){
alert("Es importante para nosotros que nos diga su apellido");return false;
}

if (form.comentarios.value == "" ){
alert("No introdujo ningún comentario o sugerencia!");return false;
}


document.forms[0].submit();
return true
}

// -->
</script>
Y asi te quedaria el Submit

Código:
<INPUTname="Enviar" type="submit" id="Enviar" value="Enviar consulta" onclick="test(this.form);return false">
  #6 (permalink)  
Antiguo 02/01/2005, 14:10
 
Fecha de Ingreso: julio-2004
Mensajes: 194
Antigüedad: 19 años, 10 meses
Puntos: 1
Esto esta en un .js

Código HTML:
function ValidarPasoI(form){

  if (form.dia.value == "")
  { alert("Por favor ingrese el dia"); form.dia.focus(); return false; }

  if (form.dia.value < 1 || form.dia.value >31)
  { alert("Por favor ingrese un dia valido"); form.dia.focus(); return false; }

  if (form.mes.value == "")
  { alert("Por favor ingrese el mes"); form.mes.focus(); return false; }

  if (form.mes.value < 1 || form.mes.value >12)
  { alert("Por favor ingrese un mes valido"); form.mes.focus(); return false; }

  if (form.year.value == "")
  { alert("Por favor ingrese el año"); form.year.focus(); return false; }

  if (form.year.value < 0)
  { alert("Por favor ingrese un año valido"); form.year.focus(); return false; }

  if (form.hipodromo.value == "")
  { alert("Por favor ingrese el hipodromo"); form.hipodromo.focus(); return false; }

  if (form.distancia.value == "")
  { alert("Por favor ingrese la distancia"); form.distancia.focus(); return false; }

  if (form.distancia.value < 800 || form.distancia.value >3000)
  { alert("Por favor ingrese su nombre"); form.distancia.focus(); return false; }

  if (form.serie.value == "")
  { alert("Por favor ingrese la serie"); form.serie.focus(); return false; }

  if (form.tiempo.value == "")
  { alert("Por favor ingrese el tiempo de la carrera"); form.tiempo.focus(); return false; }

  if (form.tiempo.value < 0 )
  { alert("Por favor ingrese un tiempo de carrera valido"); form.tiempo.focus(); return false; }

  if (form.part.value == "")
  { alert("Por favor ingrese la cantidad de participantes"); form.part.focus(); return false; }

  if (form.part.value < 2 || form.part.value >16)
  { alert("Por favor ingrese un numero de participantes valido"); form.part.focus(); return false; }

    form.submit();

              }
Y aqui cuando llamo la funcion

Código HTML:
<input type="submit" value="Siguente ->" name="Siguente" onClick="return ValidarPasoI(this.form)"> 

Para IE funcionna perfectamente, en FF muestra el alerta. pero no detiene el envio. tambien probe usado onsumit pero funciona igual
__________________
"Hay Algo Activo en el piso de Abajo..."

K-Seraph Blog
  #7 (permalink)  
Antiguo 02/01/2005, 20:46
 
Fecha de Ingreso: agosto-2003
Ubicación: Islas Canarias - Gran Canaria -
Mensajes: 59
Antigüedad: 20 años, 9 meses
Puntos: 0
Yo utilizo esta función y funciona con el FireFox:

function ValidarDatosDj()
{
var msj="";
if(document.getElementById("dj").value=="")
msj="El identificador del Dj no puede estar vacío \n";
if(document.getElementById("Nombre").value=="")
msj+="El Nombre no puede estar vacío \n";
if(document.getElementById("Email").value=="")
msj+="El Email no puede estar vacío \n";
if(document.getElementById("pass").value.length<4)
msj+="La clave tiene que ser como mínimo de 4 letras \n"

if(msj=="")
return true;
else
{ alert(msj);
return false;
}

}


y le asigno la función a un evento onclick de un botón submit
  #8 (permalink)  
Antiguo 03/01/2005, 04:45
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 k-seraph

Es mejor que llames a la función en el onsubmit del formulario:

<form onsubmit="return ValidarPasoI(this)"

En el botón submit no llamas a ninguna función:

<input type="submit" value="Siguente ->" name="Siguente" />

Y en la función ya no será necesario que pongas:

form.submit();

Espero que te funcione. Saludos,
  #9 (permalink)  
Antiguo 03/01/2005, 12:11
 
Fecha de Ingreso: julio-2004
Mensajes: 194
Antigüedad: 19 años, 10 meses
Puntos: 1
Gracias JavierB. La coloque como tu dices y funciono con FF

Gracias a todos por sus respuestas
__________________
"Hay Algo Activo en el piso de Abajo..."

K-Seraph Blog
  #10 (permalink)  
Antiguo 03/01/2005, 12:16
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Nos alegramos de que lo hayas solucionado. Hasta pronto
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 13:53.