Foros del Web » Programando para Internet » Javascript »

validar un select multiple por optgroup

Estas en el tema de validar un select multiple por optgroup en el foro de Javascript en Foros del Web. Hola... Estoy tratando de hacer una funcion en javascript que me permita verificar que en un select multiple que tiene diferentes grupos solo sea seleccionable ...
  #1 (permalink)  
Antiguo 18/02/2004, 18:54
 
Fecha de Ingreso: junio-2002
Mensajes: 14
Antigüedad: 21 años, 11 meses
Puntos: 0
validar un select multiple por optgroup

Hola...

Estoy tratando de hacer una funcion en javascript que me permita verificar que en un select multiple que tiene diferentes grupos solo sea seleccionable una opcion por grupo por ejemplo:

<form name="formu" method="post">
Bebida:
<select name="bebidas" MULTIPLE>
<optgroup name="grupo1" label="Bebidas Refrescantes">

<option value="1">Agua</option>
<option value="2">Jugo</option>
<option value="3">gaseosa</option>
</optgroup>
<optgroup name="grupo3" label="Bebidas Alcoholicas">
<option value="4">Cerveza</option>
<option value="5">Vino</option>

<option value="6">Tequila</option>
</optgroup>
<optgroup name="grupo2" label="Otros">
<option value="7">helado</option>
<option value="8">Kumis</option>
<option value="9">Vinagre</option>
</optgroup>

</select>
<input type="button" value="Verificar" onClick="verificar()">
</form>


el script que trato de escribir deberia permitir en el anterior codigo seleccionar cerveza y gaseosa, pues son de diferentes optgroup, pero la seleccion helado y kumis deberia ser invalida pues estan en el mismo grupo.

la verdad no he logrado hacer nada pues no encuentro la manera de acceder a optgroup cual optgroup pertenece cada option

he buscado y el unico sitio en que encuentro donde nombran un optgroup es en el Object Cross Reference document en http://devedge.netscape.com/library/...-document.html de dom, pero la verdad no pude sacarle provecho a esta informacion...

gracias por su ayuda y suerte!!!
  #2 (permalink)  
Antiguo 19/02/2004, 18:48
 
Fecha de Ingreso: junio-2002
Mensajes: 14
Antigüedad: 21 años, 11 meses
Puntos: 0
Despues de buscar encontre la solucion, asi que si a alguien le interesa, la funcion que hice fue(parezco loco hablando solo, yo pregunto yo contesto):

function verificar()
{
try
{
var lista = document.formu.bebidas;
var eachGroup = lista.firstChild;

var length = lista.length + lista.childNodes.length;
var eachOption=eachGroup.firstChild;
var sele=0;
for (var i=0;i<length;i++) {
if (eachOption!=null){

if (eachOption.selected){
sele++;
//alert("Del grupo "+eachGroup.label+" han sido seleccionados "+sele+" items"+i);
}
if (sele>1){
alert ("NO pueden seleccionarse 2 opciones de un mismo grupo("+eachGroup.label+") en el campo descripcion");
return;
}

eachOption=eachOption.nextSibling;
}else{
sele=0;
if (i+1!=length){
eachGroup=eachGroup.nextSibling;
eachOption=eachGroup.firstChild;
}
}
}
} catch(er){
alert(er);
}
document.formu.submit();

}


Bueno eso es por si a alguien se le ocurre realizar algo parecido...

Suerte!
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 18:16.