Ver Mensaje Individual
  #2 (permalink)  
Antiguo 30/11/2006, 18:20
Avatar de el_javi
el_javi
 
Fecha de Ingreso: marzo-2005
Ubicación: MAdrid
Mensajes: 844
Antigüedad: 19 años, 9 meses
Puntos: 10
Buenas noches MaXaC

Miraa que te parece este codigo (lo acabo de hacer adaptado a lo que pides)

Código:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
	<title>Untitled</title>
	<script language="javascript" type="text/javascript">
		// Función para validar si el elemento que se ha señalado, ya está en otro combo
		function validateDuplicates (combo)
		{
			// guardamos la posición del elemento seleccionado
			var posicionSeleccionada = combo.selectedIndex;
			
			// Obtenemos todos los combos del formulario
			var arrayCombos = document.forms["formularioCombos"].getElementsByTagName("select");
			
			// Variables para guardas lo seleccionado
			var yaEstaSeleccionado = false;
			var posicionComboEsta = null;
			// Recorremos todos los combos
			for (contCombos=0;contCombos<arrayCombos.length;contCombos++)
			{
				// Si el elemento seleccionado no es el primero (seleccione) --> Esto es un control para saltarse el `rimer elemento, que no nos vale para nada
				if (combo.selectedIndex != 0)
				{
					// si el combo que actualmente estamos recorriendo NO ES EL COMBO EN EL QUE HEMOS PULSADO
					if (arrayCombos[contCombos].id != combo.id)
					{
						// comprobamos si el Combo que actualmente estamos recorriendo (arrayCombos[contCombos]), tiene como elemento seleccionado  el valor del combo en el que hemos pinchado (combo.selectedValue)
						if (arrayCombos[contCombos].options[arrayCombos[contCombos].selectedIndex].value == combo.options[posicionSeleccionada].value)
						{
							yaEstaSeleccionado = true;
							posicionComboEsta = (contCombos + 1);
						}
					}
				}
			}
			
			// si el elemento que hemos pinchado YA ESTABA SELECCIONADO, en el combo acual, señalamos la primera opción
			if (yaEstaSeleccionado == true)
			{
				combo.selectedIndex = 0;
				alert ("El elemento [" + combo.options[posicionSeleccionada].value + "] ya estaba seleccionado en el combo [" + posicionComboEsta + "].\Señale otro");
			}
		}
	</script>
</head>

<body>
<form name="formularioCombos" action="" method="post">
	<select id="combo1" onchange="validateDuplicates(this)">
		<option value="">Seleccione</option>
		<option value="A">A</option>
		<option value="B">B</option>
		<option value="C">C</option>
		<option value="D">D</option>
		<option value="E">E</option>
	</select>
	
	<select id="combo2" onchange="validateDuplicates(this)">
		<option value="">Seleccione</option>
		<option value="A">A</option>
		<option value="B">B</option>
		<option value="C">C</option>
		<option value="D">D</option>
		<option value="E">E</option>
	</select>
	
	<select id="combo3" onchange="validateDuplicates(this)">
		<option value="">Seleccione</option>
		<option value="A">A</option>
		<option value="B">B</option>
		<option value="C">C</option>
		<option value="D">D</option>
		<option value="E">E</option>
	</select>
	
	<select id="combo4" onchange="validateDuplicates(this)">
		<option value="">Seleccione</option>
		<option value="A">A</option>
		<option value="B">B</option>
		<option value="C">C</option>
		<option value="D">D</option>
		<option value="E">E</option>
	</select>
	
	<select id="combo5" onchange="validateDuplicates(this)">
		<option value="">Seleccione</option>
		<option value="A">A</option>
		<option value="B">B</option>
		<option value="C">C</option>
		<option value="D">D</option>
		<option value="E">E</option>
	</select>
</form>

</body>
</html>
Si tienes algún tipo de duda, pregunta sin problemas