Java - Quizás es algo complicado pero... Se puede hacer?

 
Vista:
sin imagen de perfil

Quizás es algo complicado pero... Se puede hacer?

Publicado por NepT1 (7 intervenciones) el 08/11/2014 17:39:55
Hola de nuevo!

Tengo varios <select> dentro de un formulario, todos tienen el mismo contenido (los mismos <option>) y quisiera si es posible, que al escoger una <option> de uno de los <select> se oculte esa <option> en el resto de <select> menos la escogida claro esta, es posible?

Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 349
Bronce
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Quizás es algo complicado pero... Se puede hacer?

Publicado por Andrés (340 intervenciones) el 08/11/2014 20:34:02
definitivamente se puede, deja me desocupo un poco y te ayudo, regreso por la tarde
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 349
Bronce
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Quizás es algo complicado pero... Se puede hacer?

Publicado por Andrés (340 intervenciones) el 09/11/2014 06:21:49
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
<html>
<head>
<script type="text/javascript">
 
function delDup() {
 
var select = document.getElementById("selectID");
var options=select.options;
 
var selectedIndex = select.selectedIndex;
 
var text = options[selectedIndex].text;
 
var dele = []
 
var i=0;
 
for(var k=0;k<options.length;k++) {
 
	if(k===selectedIndex){
		dele[i++]=select.options[selectedIndex];
	}else {
		if(text!==options[k].text) {
			dele[i++]=options[k];
		}
	}
}
 
select.options.length=0;
 
for(var k=0;k<dele.length;k++) {
	select.options[k] = dele[k];
}
 
}
</script>
</head>
<body>
<select id="selectID" onchange="delDup();">
<option>A</option>
<option>B</option>
<option>A</option>
<option>C</option>
<option>C</option>
<option>C</option>
</select>
</body>
</html>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Quizás es algo complicado pero... Se puede hacer?

Publicado por NepT1 (7 intervenciones) el 09/11/2014 09:40:17
lo que falta es el multiple select, algo así:

<select id="A1" onchange="delDup();">
<option>A</option>
<option>B</option>
<option>C</option>
</select>

<select id="A2" onchange="delDup();">
<option>A</option>
<option>B</option>
<option>C</option>
</select>

y si selecciono el A del A1 se oculte el A del A2
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 349
Bronce
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Quizás es algo complicado pero... Se puede hacer?

Publicado por Andrés (340 intervenciones) el 09/11/2014 20:16:53
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
<html>
<head>
<script type="text/javascript">
 
function delDup(elemento) {
 
	doDelete(elemento.id, elemento.options[elemento.selectedIndex].text);
 
}
 
function doDelete(id, text) {
 
	var x = document.getElementsByTagName('select');
 
	for(var i =0;i<x.length;i++) {
 
		var select = x[i];
 
		if(id===select.id) {continue;}
 
		var options=select.options;
 
		var dele = []
 
		var i=0;
 
		for(var k=0;k<options.length;k++) {
 
			if(text!==options[k].text) {
			    dele[i++]=options[k];
			}
 
		}
 
 
		select.options.length=0;
 
		for(var k=0;k<dele.length;k++) {
			select.options[k] = dele[k];
		}
 
	}
 
}
 
</script>
</head>
<body>
<select id="select1" onchange="delDup(this);">
<option>A</option>
<option>B</option>
<option>A</option>
<option>C</option>
<option>C</option>
<option>C</option>
</select>
<select id="select2" onchange="delDup(this);">
<option>A</option>
<option>B</option>
<option>A</option>
<option>C</option>
<option>C</option>
<option>C</option>
<option>D</option>
</select>
</body>
</html>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Quizás es algo complicado pero... Se puede hacer?

Publicado por NepT1 (7 intervenciones) el 10/11/2014 08:01:18
No esta nada mal, si cambio una opción ya seleccionada se bloquea, porque no vuelven a mostrarse, pero no importa, para lo que me hace falta ya me viene bien así, muchas gracias :D

Ahora a ver si soy capaz de añadirlo al codigo php que tengo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Quizás es algo complicado pero... Se puede hacer?

Publicado por NepT1 (7 intervenciones) el 10/11/2014 08:19:17
Algo le pasa que no cambian bien

Esta es la pagina donde estoy realizando las pruebas: http://1x2midas.es/prueba.php

Voy a seguir examinando el codigo a ver...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Quizás es algo complicado pero... Se puede hacer?

Publicado por NepT1 (7 intervenciones) el 10/11/2014 08:51:43
Creo que te dejaste un ; en el var dele = [] no?

Continuo sin hacer que funcione bien, se cambian solos y se bloquea a veces :(
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 349
Bronce
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Quizás es algo complicado pero... Se puede hacer?

Publicado por Andrés (340 intervenciones) el 10/11/2014 15:06:54
ups si falta un ; en donde dices mm ya revise tu link, si se bloquea mmm mejor hay que usar jquery

si puedo al rato lo modifico
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Quizás es algo complicado pero... Se puede hacer?

Publicado por NepT1 (7 intervenciones) el 10/11/2014 19:36:46
El depurador de FireFox me indica que el problema se encuentra en esta linea:

1
for(var k = 0; k < dele.length; k++) { select.options[k] = dele[k]; }

Quizas es por el

1
var dele = [];

el valor del dele.length va cambiando segun se van selecionando opciones y pasa del 19 al 18 pero despues es cuando se bloquea
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 349
Bronce
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Quizás es algo complicado pero... Se puede hacer?

Publicado por Andrés (340 intervenciones) el 11/11/2014 05:05:29
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<script type="text/javascript">
 
function delDup(elemento) {
doDelete(elemento.id, elemento.value);
}
 
function doDelete(id, value) {
 
	var x = document.getElementsByTagName('select');
 
	var selects = x.length;
	for(var i = 0 ; i < selects ; i++) {
 
		var select = x[i];
 
		if(id===select.id) {continue;}
 
		var selectedOldValue = select.value;
                select.value=value;
		select.remove(select.selectedIndex);
		select.value=selectedOldValue;
	}
 
}
</script>

Listo, solo asegurate de que los selects tienen diferente id y contempla el caso en el que vacias todas las opciones de un select, el script ya hace lo requerido.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Quizás es algo complicado pero... Se puede hacer?

Publicado por NepT1 (7 intervenciones) el 11/11/2014 08:09:12
Funciona perfecto, ahora esta mucho mas cómodo así, muchas gracias! :)

Tendré que empezar a aprender java yo también, me esta empezando a gustar, aunque lo veo mas complicado que el php
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar