Foros del Web » Programando para Internet » Javascript »

Validar Campo Lista Desplegable

Estas en el tema de Validar Campo Lista Desplegable en el foro de Javascript en Foros del Web. Buenas amigos de foros del web...........tengo el siguiente problema: tengo un formulario en el cual valido que algunos campos que son importantes no se dejen ...
  #1 (permalink)  
Antiguo 28/11/2007, 22:58
 
Fecha de Ingreso: octubre-2007
Mensajes: 191
Antigüedad: 16 años, 7 meses
Puntos: 0
Validar Campo Lista Desplegable

Buenas amigos de foros del web...........tengo el siguiente problema:
tengo un formulario en el cual valido que algunos campos que son importantes no se dejen en blanco...bueno me funciona todo bien menos el de una lista desplegable llamada "TIPO ARTEFACTO" porque aunque seleccione un valor.....el script me sigue diciendo que esta vacio...

este es el codigo:

Cita:
<html>
<head>
<title>Ingresar</title>


<script language="javascript">



function validar(form)
{
var error = "POR FAVOR, ANTES DE ENVIAR EL FORMULARIO, DEBE COMPLETAR LOS SIGUIENTES CAMPOS:\n\n";
var a = ""

if (form.csr.value == "") { a += "CSR \n"; }
if (form.loc.value == "") { a += "LOCAL \n"; }
if (form.guia_d.value == "") { a += "GUIA DE DESPACHO\n"; }
if (form.artefacto.value == "") { a += "ARTEFACTO\n"; }
if (form.serie.value == "") { a += "SERIE\n"; }
if (form.tipo_artefacto.value == "") { a += "TIPO ARTEFACTO\n"; }

if (a != "") { alert(error + a); return true; }
form.submit()
}


</script>
<center>
<form name="ingresodist" method="post" action="Scripts/validaingresodis.asp" >
<b><font color="white" size="6" face="verdana">CONTROL TALLER 2.0 </font></b>
<hr size=1>
<TABLE BORDER=1 bordercolor="#0000FF" CELLSPACING="1" CELLPADDING="5" WIDTH=250>
<tr> <td width=285 >
<font face="verdana" size="4"><b> <center>Ingreso de Distribuidores </center></b> </font>
</tr></td> </table>
<p><BR>

<a href="menu.asp" TARGET=_parent>
<font face="verdana" size="3" color="BLACK"><B> Volver al Menu</B></font></a><BR>
</p>
<TABLE BORDER=1 bordercolor="#0000FF" CELLSPACING="1" CELLPADDING="5" WIDTH=345>

<tr>
<td width="287" ><b>Csr :</b>&nbsp; &nbsp;&nbsp; &nbsp;
<input type="text" name="csr" id="csr" size=15 MaxLength="8" Value="" onKeyPress="numero('%n',this);">
</td> </tr>

<tr>
<td ><b>Distribuidor :</b>&nbsp;&nbsp; <select name="distribuidor">
<option selected></option>
<option>ABC </option>
<option>DIN </option>
<option>LIDER</option>
<option>DIN_CLIENTE</option>
<option>ABC_CLIENTE</option>
<option>LA_POLAR</option>
<option>FALABELLA</option>
<option>SAN_FRANCISCO</option>
<option>JOHNSONS</option>
<option>SODIMAC</option>
<option>COMERCIAL_GANEM</option>
<option>ALMACENES_PARIS</option>

</select></td> </tr>



<tr>

<td ><b>Local :</b>&nbsp;&nbsp;&nbsp;
<input type="text" name="loc" id="loc" size=20 Value="" onKeyPress="man('%m',this);" >
</td>
</tr>

<tr>
<td ><b>Guia de Despacho :</b>&nbsp;&nbsp;&nbsp;
<input type="text" name="guia_d" id="guia_d" size=15 Value="" onKeyPress="guias('%g',this);">
</td>
</tr>



<tr> <td ><b>Artefacto :</b>&nbsp;&nbsp;&nbsp;
<input type="text" name="artefacto" id="artefacto" size=30 Value="" onKeyPress="guias('%g',this);"></td>
</tr>
<tr> <td ><b>Serie :</b>&nbsp;&nbsp;
<input type="text" name="serie" id="serie" size=15 Value="" onKeyPress="guias('%g',this);"> </td> </tr>



<tr> <td ><b>Tipo Artefacto :</b>&nbsp;
<select name="tipo_artefacto">
<option selected></option>
<option>ALISADOR PELO</option>
<option>ASPIRADORA</option>
<option>BATIDORA</option>
<option>CAFETERA</option>
<option>CALEFONT</option>
<option>CAMPANA COCINA</option>
<option>CENTRIFUGA</option>
<option>COCINA</option>
<option>CUCHILLO ELECTRICO</option>
<option>ENCERADORA</option>
<option>ESTUFA</option>
<option>ESTUFA ELECTRICA</option>
<option>EXTRACTOR JUGO</option>
<option>FREEZER</option>
<option>FREIDORA</option>
<option>H.MICROONDAS</option>
<option>HERVIDOR</option>
<option>HORNO ELECTRICO</option>
<option>LAVADO/SECADO</option>
<option>LICUADORA</option>
<option>LIMPIADOR VAPOR</option>
<option>PARRILLA ELECTRICA</option>
<option>PLANCHA</option>
<option>PROCESADOR ALIMENTOS</option>
<option>RADIADOR OLEOELECTRICO</option>
<option>REFRIGERADOR</option>
<option>SANDWICHERA</option>
<option>SECADOR PELO</option>
<option>TERMOVENTILADOR</option>
<option>TOSTADOR</option>
<option>VENTILADOR</option>
</select></td> </tr>


<tr> <td ><b>Estado :</b>&nbsp;
<select name="estado">
<option selected>REVISION</option>
<option>PXR</option>
<option>SCA</option>
<option>DC</option>
<option>OK</option>
<option>ENTREGADO</option>

</select></td> </tr>



<tr>
<td ><b>Guia de Entrega :</b>&nbsp;&nbsp;&nbsp;
<input type="text" name="guia_sta" id="guia_sta" size=15 Value="" onKeyPress="guias('%g',this);">
</tr>
<tr>

<td ><b>Tipo de Garantía:</b>&nbsp;&nbsp;&nbsp;
<select name="gtia">
<option selected>DG</option>
<option>FG</option>
<option>GE</option>
<option>GTIA TALLER</option>
<option>ENPROCESO</option>
</select></td> </tr>

<tr>
<td ><b>Técnico Asignado :</b>&nbsp;&nbsp;&nbsp;
<select name="tecnico">
<option selected>por asignar</option>
<option>HH</option>
<option>CM</option>
<option>VA</option>
<option>AA</option>
<option>AK</option>
<option>SM</option>
<option>JLV</option>
<option>GP</option>
<option>JD</option>
</select></td> </tr>

<td ><b>Código de Autorización :</b>&nbsp;&nbsp;&nbsp;
<input type="text" name="cod_auto" id="cod_auto" size=15 Value="" >
</tr> </td>
<tr> <td bgcolor><b>Comentarios :</b>
<input type="text" name="comentarios" id="comentarios" size=30 Value="" ></td> </tr>
</table> <br> <br>
<input type="button" value="Terminar" onClick="validar(this.form)">

</tr> </table> </b> </form> </center>
</center>

</body>
</html>
lo marcado con azul es la funcion que valida el campo tipo_artefacto
y lo marcado con rojo es el codigo de la lista desplegable

DE ANTEMANO MUCHAS GRACIAS
  #2 (permalink)  
Antiguo 28/11/2007, 23:54
 
Fecha de Ingreso: septiembre-2007
Ubicación: El pais del oro negro
Mensajes: 96
Antigüedad: 16 años, 7 meses
Puntos: 2
Re: Validar Campo Lista Desplegable

esa no es la forma de hacer una validacion de una lista desplegable tienes que hacer algo como

var indiceSeleccionado = lista.selectedIndex;
var opcionSeleccionada = lista.options[indiceSeleccionado];
if (opcionSeleccionada.value == "") {

// condicion

}
  #3 (permalink)  
Antiguo 29/11/2007, 07:48
 
Fecha de Ingreso: octubre-2007
Mensajes: 191
Antigüedad: 16 años, 7 meses
Puntos: 0
Re: Validar Campo Lista Desplegable

gracias por responder compadre.........pero no se como reemplazar el codigo en mi funcion......podrias por favor explicarme mejor ???

De Antemano muchas gracias......
  #4 (permalink)  
Antiguo 29/11/2007, 08:38
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Re: Validar Campo Lista Desplegable

Hola:

Yo no tengo ninguna duda de las validaciones... la forma adecuada es en la propia etiqueta form de la forma: onsubmit="return validar(this)"...

Al usar el tag form, al usar como parámetro this, se referencia todo el formulario, en el caso de los selects, es preferible que si hay un option "introductorio" del tipo seleccione un item tenga un value="" y la validación compruebe que sea distinto de "".

La función validadora debe retornar siempre false para anular el envío... por ejemplo si el select tiene name="sel", el envío se cancelaría con:
function validar(f) {
return f["sel"].value != "";
}

Debes controlar el resto de campos del form, pero la idea es la que se muestra.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #5 (permalink)  
Antiguo 29/11/2007, 09:13
Avatar de chalchis  
Fecha de Ingreso: julio-2003
Mensajes: 1.773
Antigüedad: 20 años, 9 meses
Puntos: 21
Pregunta Re: Validar Campo Lista Desplegable

Cita:
Iniciado por darkmcloud Ver Mensaje
gracias por responder compadre.........pero no se como reemplazar el codigo en mi funcion......podrias por favor explicarme mejor ???

De Antemano muchas gracias......
podria ser algo asi

<script language="javascript">

function validar(form)
{
var error = "POR FAVOR, ANTES DE ENVIAR EL FORMULARIO, DEBE COMPLETAR LOS SIGUIENTES CAMPOS:\n\n";
var a = ""

if (form.csr.value == "") { a += "CSR \n"; }
if (form.loc.value == "") { a += "LOCAL \n"; }
if (form.guia_d.value == "") { a += "GUIA DE DESPACHO\n"; }
if (form.artefacto.value == "") { a += "ARTEFACTO\n"; }
if (form.serie.value == "") { a += "SERIE\n"; }

var indiceSeleccionado = lista.selectedIndex;
var opcionSeleccionada = lista.options[indiceSeleccionado];
if (opcionSeleccionada.value == "") {
a += "TIPO ARTEFACTO\n";
}

if (a != "") { alert(error + a); return true; }
form.submit()
}

</script>

checalo

saludos
__________________
gerardo
  #6 (permalink)  
Antiguo 02/12/2007, 21:33
 
Fecha de Ingreso: octubre-2007
Mensajes: 191
Antigüedad: 16 años, 7 meses
Puntos: 0
Re: Validar Campo Lista Desplegable

Cita:
podria ser algo asi

<script language="javascript">

function validar(form)
{
var error = "POR FAVOR, ANTES DE ENVIAR EL FORMULARIO, DEBE COMPLETAR LOS SIGUIENTES CAMPOS:\n\n";
var a = ""

if (form.csr.value == "") { a += "CSR \n"; }
if (form.loc.value == "") { a += "LOCAL \n"; }
if (form.guia_d.value == "") { a += "GUIA DE DESPACHO\n"; }
if (form.artefacto.value == "") { a += "ARTEFACTO\n"; }
if (form.serie.value == "") { a += "SERIE\n"; }

var indiceSeleccionado = lista.selectedIndex;
var opcionSeleccionada = lista.options[indiceSeleccionado];
if (opcionSeleccionada.value == "") {
a += "TIPO ARTEFACTO\n";
}

if (a != "") { alert(error + a); return true; }
form.submit()
}

</script>



lo hice asi y ni pasa nada......ni siquiera me aparece que el campo de la lista desplegable esta vacio.......ayuda please !!! es que soy algo novato......entonces no entedi las respuestas anteriores.......
De antemano muchas gracias
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 06:40.