Foros del Web » Programando para Internet » Javascript »

Validar un select multiple

Estas en el tema de Validar un select multiple en el foro de Javascript en Foros del Web. Buenas amigos quiero validar un select multiple para comprobar q haya sido seleccionado algun elemento Aki creo el select: Código PHP: < select name = "accesos[]"  ...
  #1 (permalink)  
Antiguo 05/05/2005, 05:48
Avatar de cometron  
Fecha de Ingreso: mayo-2003
Ubicación: Madrid
Mensajes: 151
Antigüedad: 21 años, 5 meses
Puntos: 0
Pregunta Validar un select multiple

Buenas amigos quiero validar un select multiple para comprobar q haya sido seleccionado algun elemento
Aki creo el select:
Código PHP:
<select name="accesos[]" size="5" multiple>
<
option value="a">primero</option>
<
option value="b">segundo</option>
<
option value="c">tercero</option>
<
select
Y la funcion de javascript q estoy usando para q me verifique si esta seleccionado es esta. Sin la funcion me funciona pero con ella no
Código PHP:
function confirmar_alta_acceso() {
if(
document.alta.accesos.value == ''){
return;
}else{
document.getElementById('cajametealtaaccesos').style.visibility='hidden';
document.alta.submit();
}

Alguna idea? Gracias
  #2 (permalink)  
Antiguo 05/05/2005, 10:07
Avatar de cometron  
Fecha de Ingreso: mayo-2003
Ubicación: Madrid
Mensajes: 151
Antigüedad: 21 años, 5 meses
Puntos: 0
Nada ninguna idea?
  #3 (permalink)  
Antiguo 05/05/2005, 10:48
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 9 meses
Puntos: 772
Hola cometron

Prueba con:
Código PHP:
if (document.forms['alta']['accesos[]'].selectedIndex == -1)
return; 
Saludos,
  #4 (permalink)  
Antiguo 05/05/2005, 11:12
Avatar de cometron  
Fecha de Ingreso: mayo-2003
Ubicación: Madrid
Mensajes: 151
Antigüedad: 21 años, 5 meses
Puntos: 0
Uhm lo he p uesto tal cual y nada no funciona....
  #5 (permalink)  
Antiguo 05/05/2005, 11:35
Avatar de chalchis  
Fecha de Ingreso: julio-2003
Mensajes: 1.773
Antigüedad: 21 años, 4 meses
Puntos: 21
Pregunta nada mas haces mencion al select

ejemplo mi select se llama programas

if(formulario.programas.value=="")
{
alert('Error: [ " Se requiere al menos un programa academico seleccionado de la lista de programas " ]');
formulario.programas.focus();
return(false);
}
__________________
gerardo
  #6 (permalink)  
Antiguo 05/05/2005, 14:42
 
Fecha de Ingreso: agosto-2004
Mensajes: 157
Antigüedad: 20 años, 3 meses
Puntos: 5
Hola cometron, JavierB y cometron.

Si optas por un select multiple tal vez quieras establecer el máximo y el mínimo de opciones que se pueden seleccionar, el script que te envio puedes establecerlo, para ello me sirvo de la posibilidad de añadir propiedades a los elementos de un form, he añadido tres propiedades, máximo permitido, mínimo y el nombre al que no referimos al campo, para que funcione debes establecer las tres propiedades, si no estableces las propiedades el select no es obligatorio, también decir que puedes verificar tantos select como quieras.

Código:
<html>
<head>
<title></title>

<script language="JavaScript" type="text/javascript">
<!--



function current_form(current_form) {
	var error_message =""
	// añadimos propiedades a select multiples
	current_form["multiple_select"].field_name = "ANIMALES";
	// maximo de elementos seleccionados permitidos
    current_form["multiple_select"].max_selected = 3;
	// minimo  permitidos
	current_form["multiple_select"].min_selected = 2;
	// si por ejemplo queremos que el usario seleccion una opcion lo hariamos así
	current_form["multiple_select1"].field_name = "COCHES";
	current_form["multiple_select1"].max_selected = 1;
	current_form["multiple_select1"].min_selected = 1;
	// recorremos todo los campos
	for(var ctr1 = 0; field_m_select = current_form[ctr1];ctr1++){
		// si es un select multiple y hemos añadido las propiedades el campo es obligatorio
		if(field_m_select.type == "select-multiple" && field_m_select.max_selected){
			(function(){
			var cuantos = 0;
			for (var ctr = 0; opt = field_m_select.options[ctr]; ctr++) {
			   if (opt.selected) cuantos ++
			}
			
			if (cuantos > field_m_select.max_selected || cuantos < field_m_select.min_selected ){
			if(field_m_select.max_selected == field_m_select.min_selected){
			error_message += "En el campo " + field_m_select.field_name + " debe seleccionar " + field_m_select.min_selected + 
							 (field_m_select.min_selected > 1 ?" opciones ":" opción")+".";					
			}
			else{
			error_message += "En el campo " + field_m_select.field_name + " debe seleccionar un minimo de " + field_m_select.min_selected + 
							" y un máximo de " + field_m_select.max_selected + (field_m_select.max_selected > 1 ? " opciones":" opción")+ ".\n";
			}
			}
			})(field_m_select);
		}
	}
	// Si el mensaje no está vacío mostramos el error
	if(error_message != "") alert("ERROR\n\n" + error_message)
	else alert("Enviamos el formulario.")
    
}

//-->
</script>

</head>
<body>

<form>

<br>
<b>ANIMALES <sup>Obligatorio</sup></b>
<br>Seleccione un mímimo de 2 y un máximo de 3 opciones.<br>

<select name="multiple_select" size="6" multiple="multiple" style="width:150px;">
<option>Perro</option>
<option>Canario</option>
<option>León</option>
<option>Oveja</option>
<option>Gato</option>
<option>Elefante</option>
</select>

<br><b>COCHES <sup>Obligatorio</sup></b>

<br>Seleccione solo una opción.<br>

<select name="multiple_select1" size="3" multiple="multiple" style="width:150px;">
<option value="mercedes">Mercedes</option>
<option value="seat">Seat</option>
<option value="ford">Ford</option>
</select> 
<br><b>LETRAS <sup>No obligatorio</sup></b><br>
<select name="multiple_select2" size="3" multiple="multiple" style="width:150px;">
<option value="a">a</option>

<option value="b">b</option>
<option value="c">c</option>
</select> 
<br>
<input type="button"
       value="Enviar"
	   size ="40"
       onClick="current_form(this.form)">	   
</form>

</body>
</html>
Bueno, espero que te sirva.
Saludos
  #7 (permalink)  
Antiguo 06/05/2005, 01:56
Avatar de cometron  
Fecha de Ingreso: mayo-2003
Ubicación: Madrid
Mensajes: 151
Antigüedad: 21 años, 5 meses
Puntos: 0
Uf no me termino de aclarar lo unico q queria seria del select q recibo poder enviarlo con la confirmacion.. algo parecido a lo de JavierB..
  #8 (permalink)  
Antiguo 06/05/2005, 02:08
Avatar de cometron  
Fecha de Ingreso: mayo-2003
Ubicación: Madrid
Mensajes: 151
Antigüedad: 21 años, 5 meses
Puntos: 0
Ya me funciona. Ayer puse lo q me puse JavierB y no me iva... acabo de llegar a la ofi y por alguna razon de la vida pos ahora si funciona... cambio? ninguno asi q debo tar mal de la cabeza.. gracias a todos
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:44.