Foros del Web » Programando para Internet » Javascript »

Algunos campos no vacíos

Estas en el tema de Algunos campos no vacíos en el foro de Javascript en Foros del Web. Hola a todos !! Tengo una página con un formulario y quisiera que validara que algunos campos no estén vacíos. He estado mirando en las ...
  #1 (permalink)  
Antiguo 18/07/2003, 02:06
 
Fecha de Ingreso: noviembre-2002
Mensajes: 223
Antigüedad: 21 años, 5 meses
Puntos: 1
Algunos campos no vacíos

Hola a todos !!

Tengo una página con un formulario y quisiera que validara que algunos campos no estén vacíos. He estado mirando en las faqs y he encontrado algo de eso. La función del script la pongo al final.

El problema que tengo es que con esta función se valida que todos los campos del formulario tengan algún valor, y yo sólo quiero validar algunos campos muy concretos.

Además, quiero validar no sólo campos de texto, también menús desplegables, es decir, que el usuario haya seleccionado una opción del menú.

Podéis ayudarme con esto??? Muchas gracias !!!!!!!!!!


<script>
function comprobar(){var mal=false;
numero=document.forms[0].elements.length;
for(a=0;a<numero;a++){
if (document.forms[0].elements[a].value==""){document.forms[0].elements[a].style.backgroundColor="#ffffcc";mal=true;}
else{document.forms[0].elements[a].style.backgroundColor="white";}
}
if(mal){PopUpSin('Formulario/Formulario.htm','acepopup','100','100','center','f ront');}
//{alert("Por favor, rellene las cajas coloreadas");}
else{document.forms[0].submit()}
}

</script>
  #2 (permalink)  
Antiguo 18/07/2003, 02:26
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
Hola Liz

Hace algún tiempo hice un script genérico para verificar formularios muy sencillo de usar.

Eso sí, no verifica radios ni checkboxes (acabo de descubrirlo)

¿Te servirá?
  #3 (permalink)  
Antiguo 18/07/2003, 02:43
 
Fecha de Ingreso: noviembre-2002
Mensajes: 223
Antigüedad: 21 años, 5 meses
Puntos: 1
Hola Tunait, siempre que verifique algunos campos de texto del formulario y un menú desplegable, me vale.

No tengo que verificar ni radio buttoms ni check-boxes

Servirá?????
  #4 (permalink)  
Antiguo 18/07/2003, 02:48
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
Sip, precisamente la idea era un verificador que no necesitara configuración alguna en el script.

Ahí va, te pongo el ejemplo completo para que lo pruebes.

Si te interesa usarlo no tienes más que colocar un * al final del nombre de los campos que quieras que sean requeridos.

<script language="JavaScript">
//Script verificador de formularios por Tunait!
//Los campos obligados deben terminar con un *
//No verifica los checkbox ni los radio

function verificarFormu(cualo)
{
for(m=0;m<cualo.length;m++)
{
if(cualo.elements[m].name.charAt(cualo.elements[m].name.length-1) == "*")
{
if(cualo.elements[m].value=="")
{
alert("Debe poner un " + cualo.elements[m].name.substring(0,cualo.elements[m].name.length-1))
cualo.elements[m].focus()
return false
break;
}
if(cualo.elements[m].name=="Email" || cualo.elements[m].name=="Email*")
{
pat=/^[\w\_\.çñ]{2,255}@[\w]{2,255}\.[a-z]{1,3}\.?[a-z]{0,3}$/
if(!pat.test(cualo.elements[m].value))
{
alert("Introduzca un E-mail válido")
cualo.elements[m].focus()
return false
}

}
}
else
{
continue;
}
}


}
</script>
</head>

<body>
<form name="form1" method="post" action="http://helena/formu.asp" onSubmit="return verificarFormu(this)">
<table width="50%" border="1" align="center" bordercolor="#9900FF" bgcolor="#FFFFF8">
<tr>
<td width="48%" align="right">Nombre</td>
<td width="52%"><input name="Nombre*" type="text" id="Nombre" ></td>
</tr>
<tr>
<td align="right">Apellido</td>
<td><input name="Apellido" type="text" id="Apellido" ></td>
</tr>
<tr>
<td align="right">E-mail</td>
<td><input name="Email*" type="text" id="Email" ></td>
</tr>
<tr>
<td align="right">Pa&iacute;s</td>
<td><input name="Pais" type="text" id="Pais" ></td>
</tr>
<tr>
<td align="right">Color</td>
<td><select name="color*" id="color">
<option value="">Selecciona</option>
<option value="Rojo">Rojo</option>
<option value="Azul">Azul</option>
<option value="Verde">Verde</option>
</select></td>
</tr>
<tr>
<td colspan="2" align="center">pepe
<input name="Pepe" type="checkbox" id="Pepe" value="checkbox" >
Paco <input name="Paco" type="checkbox" id="Paco" value="checkbox" >
Bartolo <input name="Bartolo" type="checkbox" id="Bartolo" value="checkbox" > </td>
</tr>
<tr>
<td colspan="2" align="center">S&iacute;
<input type="radio" name="Info" value="radiobutton" >
no <input type="radio" name="Info" value="radiobutton" ></td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="submit" name="Submit" value="Enviar"></td>
</tr>
</table>
</form>
</body>
  #5 (permalink)  
Antiguo 18/07/2003, 04:03
 
Fecha de Ingreso: noviembre-2002
Mensajes: 223
Antigüedad: 21 años, 5 meses
Puntos: 1
SIIIIIIIIIIIIIIIIIIIIIIII
Tunait, era justamente lo que necesitaba !!!!!!!!!
MUCHISIMAS GRACIAS!!!!!!!!
Hasta verifica el mail, que era otra de las cosas que necesitaba!!
Tunait, estás hecha un hacha !!!!!!!

Cuando lo he probado en mi página tengo un pequeño problema.
No lo hace bien, y es que resulta que en vez de botón de enviar tengo una imagen y un texto en otro marco distinto al del formulario. El código de la imagen y el texto que utilizo para enviar es el siguiente:

<td width="20" nowrap valign="middle"> <img style="cursor:hand" src="../../Images/Bolita.gif" width="20" height="20" border="0" align=middle
value=submit name=Enviar title="Enviar la solicitud" onMouseOver="MM_displayStatusMsg('Enviar la solicitud');return document.MM_returnValue" onClick="top.General.Ingreso.submit()">
</td>
<td onMouseOver="entra(this,'#37B5FF')" onMouseOut="sale(this,'ffffff')" width="107" nowrap>
<div align="center"><a href="javascript:top.General.Ingreso.submit()" class="SaltarIntro" onMouseOver="MM_displayStatusMsg('Enviar la solicitud');return document.MM_returnValue">Enviar solicitud</a></div>
</td>


He puesto en vez de: onSubmit="return verificarFormu(this)"
esto otro: onSubmit="return verificarFormu(Ingreso)"
Ingreso es como se llama mi formulario, pero sigue sin funcionar.

¿Se te ocurre qué pasa?

MIL GRACIAS POR TODO!!!!!!!!!
  #6 (permalink)  
Antiguo 18/07/2003, 04:43
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
buenas!

Cita:
He puesto en vez de: onSubmit="return verificarFormu(this)".....
Pero... ¿has probado a dejarlo tal cual?

Es que da igual cómo se haga el submit. Lo importante es que cuando se haga ese submit, el formulario se encarga de llamar a la función
  #7 (permalink)  
Antiguo 18/07/2003, 05:26
 
Fecha de Ingreso: noviembre-2002
Mensajes: 223
Antigüedad: 21 años, 5 meses
Puntos: 1
Sí. Lo he probado de varias maneras.

Si lo dejo tal cual me lo has enviado tú y pongo un botón enviar dentro del formulario (en el mismo marco) lo hace todo genial. Pero si pruebo a enviarlo desde el marco de arriba (con la bolita y el texto "Enviar") se envia el formulario directamente sin verificarlo.
  #8 (permalink)  
Antiguo 18/07/2003, 05:37
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
hum... voy a jugar un poco y te cuento....
  #9 (permalink)  
Antiguo 18/07/2003, 05:43
 
Fecha de Ingreso: noviembre-2002
Mensajes: 223
Antigüedad: 21 años, 5 meses
Puntos: 1
ok, Tunait, perdona todas las molestias.

Yo también estoy cacharreando a ver si encuentro qué pasa ...
  #10 (permalink)  
Antiguo 18/07/2003, 06:13
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
Yap!


<a href="javascript:if(top.General.verificarFormu(top .General.Ingreso)){top.General.Ingreso.submit()}">Enviar solicitud</a>

Y la función añádele lo que dejo en negritas (pongo sólo las últimas líneas)


..... etc.....

else
{
continue;
}
}
return true

}
</script>

  #11 (permalink)  
Antiguo 18/07/2003, 06:34
 
Fecha de Ingreso: noviembre-2002
Mensajes: 223
Antigüedad: 21 años, 5 meses
Puntos: 1
SIIIIIIIIIIIIIIIIIIIIIIIIIIIII !!!!!!!!!!!!!!!!!!

Tunait, una vez más, gracias por tu ayuda y tu tiempo. Funciona perfectamente!!!!

Ahora que me has dado la pista, voy a ver si consigo hacer lo mismo con una imagen tipo submit. El lunes te cuento que tal!!!!

GRACIAS MAESTRA

Última edición por Liz26; 18/07/2003 a las 06:36
  #12 (permalink)  
Antiguo 21/07/2003, 03:45
 
Fecha de Ingreso: noviembre-2002
Mensajes: 223
Antigüedad: 21 años, 5 meses
Puntos: 1
Hola Tunait!!!!

Conseguí modificar la imagen también. La he quitado el tipo=submit y la he puesto como un enlace normal, cambiando el texto por la imagen.

También he conseguido que en vez de la ventana alert aparezca un popup diseñado por mi.

....... y todo funciona a las mil maravillas ......

Muchas gracias por todo

Hasta lueguito!!!

... y paciencia con las obras ...
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:39.