Ante todo perdon por volver con un tema que esta publicado hasta en las puertas de los baños, pero para mi es una de las cosas que mas me cuestan
(por ahora).Paso a contarles:
Tengo un Select1 que carga(onChange) otro Select2(este tiene varias filas), hasta ahi todo bien, el tema es que al hacer DblClick en cualquier opcion del Select2 tendria que cargar dicha opcion a una textArea. Esto ultimo no funciona es como si en los value de las opciones cargadas "dinamicamente" al Select2 estan todas vacias(""), ya que al hacer DblClick en cualquier opcion del Select2 me aparece el alerta de "Seleccione una opcion".
Para asegurarme que esto fuera asi, le agregue un alerta que me muestra el value de la opcion seleccionada al hacer DblClick y ahi podran ver que el value esta vacio.
Con esto cargo el Select2:
Código:
Funcion que uso para cargar el item selecionado(con DblClick) al TextArea, la linea 105 es la que uso para verificar el value del item seleccionado(en todos esta vacio):1 <script language = "JavaScript">
2 <%
3 Dim x1
4
5 Set objRS= CreateObject("ADODB.Recordset")
6 strSQL = "select distinct legajo, nombre from Tabla "& _
7 objRS.Open strSQL, oConn
8
9 x1=0
10 %>
11 // FUNCION DE COMBO BOX COMBINADO
12
13 function cargarSelect2(form, itemSeleccionado) {
14 form.Select2.length = 0
15
16 <%
17 count= 0
18 y=0
19 Do While not objRS.EOF
20 %>
21
22 x1 = <%= trim(y) %>;
23
24 subcat = new Array();
25 subcatagory = "<%=(objRS("legajo")) %>";
26 subcatagoryof = "<%=(objRS("nombre"))%>";
27 subcat[x1,0] = subcatagory;
28 subcat[x1,1] = subcatagoryof;
29 if (subcat[x1,0] == itemSeleccionado) {
30 var option<%= trim(count) %> = new Option(subcat[x1,1]);
31 form.Select2.options[form.Select2.length]= option<%= trim(count)%>;
32 //form.Select2.options[form.Select2.length].value= subcat[x1,1];
33 }
34 <%
35 count = count + 1
36 y = y + 1
37 objRS.MoveNext
38 Loop
39 objRS.Close
40 %>
41 }
42 </script>
43
44 <SELECT size="1" name="Select1" class="fuente" onChange="cargarSelect2(this.form,Select1.value);">
45 <option value="Elija un legajo" selected>Elija un legajo</option>
46 <%
47 'Aqui cargo el Select1 (funciona OK)
48 %>
49 </select>
50
51
52 <SELECT name="Select2" size=6 class="fuente_chica" onDblClick="cargo_TextArea();">
53 </select>
Código:
Si "habilito" la linea 32, para que guarde el nombre como value, entonces da error de JavaScript al seleccionar una opcion del Select1, y si la "deshabilito" caigo en el alert de la linea 116 ya que el value siempre es vacio.100 <script language="javaScript">
101
102 function cargo_TextArea() {
103 var cadena
104
105 alert("El VALUE seleccionado es: "+document.form.Select2.options[document.form.Select2.selectedIndex].value);
106
107 if(document.form.Select2.selectedIndex != -1 && document.form.Select2.options[document.form.Select2.selectedIndex].value != "") {
108 cadena = document.form.Select2.options[document.form.Select2.selectedIndex].value ;
109 if(document.form.HubNodo_Afectados.value != "") {
110 cadena = cadena + ",";
111 }
112 document.form.txt_Datos.value = cadena + document.form.txt_Datos.value;
113 }
114 else {
115 if(document.form.Select2.options[document.form.Select2.selectedIndex].value == "") {
116 alert("Por favor, seleccione una opcion");
117 }
118 }
119 }
120 </script>
Espero haber sido lo mas claro posible, la idea es que si alguien ya hizo esta "combinacion" de:
Select1 -(onChange)--> Select2 -(onDblClick)--> TextArea, pueda aportar algo a ver si puedo "salir" de estas tediosas listas dinamicas.
Gracias de Antemano,
Saludos.
, el problema estaba en la linea 32, ya que no sabia que al crear una nueva opcion, inmediatamente se actualiza el tamaño del select haciendo q'el puntero quede en la ultima opcion creada +1. Por eso debia restarle una posicion(-1) al cargar el value de la opcion creada.
