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

   
Vista:

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

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

Publicado por Andrés (231 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

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

Publicado por Andrés (231 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

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

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

Publicado por Andrés (231 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

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

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

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

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

Publicado por Andrés (231 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

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

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

Publicado por Andrés (231 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

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