Ver Mensaje Individual
  #1 (permalink)  
Antiguo 18/03/2011, 23:05
Avatar de Camarex
Camarex
 
Fecha de Ingreso: enero-2003
Ubicación: Monterrey NL
Mensajes: 148
Antigüedad: 22 años, 3 meses
Puntos: 0
Pregunta Ocultar Boton Submit en un ComboBox

Que tal, hace tiempo encontre un script para combobox dependiente, y me gusto mucho, asi que le agregue el boton de submit, pero lo oculte para no darle continuar sin escoger las opciones. Luego, al ir escogiendo las diferentes opciones se va mostrando u ocultando segun sea el caso. Hasta ahi todo bien, el problema es que al dar click en la primera opcion de cada lista de opciones, (-Categoria- y -SubCategoria-) se habilita el boton.
Trate de corregir eso, pero la verdad no le encontre como, ya que se muy poquito o casi nada de javascript.

Ojala algun experto en JavaScript me pueda echar la mano, la verdad ya estoy bien desesperado con esto. De antemano Muchas Gracias.

Aqui el codigo JavaScript.

Código Javascript:
Ver original
  1. // Primer combo box
  2.     data_1 = new Option("1", "1");
  3.     data_2 = new Option("2", "2");
  4.  
  5. // Segundo combo box
  6.     data_1_1 = new Option("11", "11");
  7.     data_1_2 = new Option("12", "12");
  8.     data_2_1 = new Option("21", "21");
  9.     data_2_2 = new Option("22", "22");
  10.     data_2_3 = new Option("23", "23");
  11.     data_2_4 = new Option("24", "24");
  12.     data_2_5 = new Option("25", "25");
  13.  
  14. // Tercer combo box
  15.     data_1_1_1 = new Option("111", "111");
  16.     data_1_1_2 = new Option("112", "112");
  17.     data_1_1_3 = new Option("113", "113");
  18.     data_1_2_1 = new Option("121", "121");
  19.     data_1_2_2 = new Option("122", "122");
  20.     data_1_2_3 = new Option("123", "123");
  21.     data_1_2_4 = new Option("124", "124");
  22.     data_2_1_1 = new Option("211", "211");
  23.     data_2_1_2 = new Option("212", "212");
  24.     data_2_2_1 = new Option("221", "221");
  25.     data_2_2_2 = new Option("222", "222");
  26.     data_2_3_1 = new Option("231", "231");
  27.     data_2_3_2 = new Option("232", "232");
  28.  
  29. // Cuarto combo box
  30.     data_1_1_1_1 = new Option("1111","1111")
  31.     data_2_2_1_1 = new Option("2211","2211")
  32.     data_2_2_1_2 = new Option("2212","2212")
  33.  
  34. // Otros Parametros
  35.     displaywhenempty=""
  36.     valuewhenempty=-1
  37.  
  38.     displaywhennotempty="-SubCategoria-"
  39.     valuewhennotempty=0
  40.  
  41.  
  42. function change(currentbox) {
  43.     numb = currentbox.id.split("_");
  44.     currentbox = numb[1];
  45.     i=parseInt(currentbox)+1
  46.  
  47. // Vacio todos los combo boxes siguiendo la actual.
  48.  
  49.     while ((eval("typeof(document.getElementById(\"combo_"+i+"\"))!='undefined'")) &&
  50.            (document.getElementById("combo_"+i)!=null))
  51.         {
  52.          son = document.getElementById("combo_"+i);
  53.          
  54.          /*
  55.          Se borran todas las opciones menos la primera (no esta permitido)
  56.          Esto es, cuando se selecciona una categoria del combo anterior, las que
  57.          ya se habian desplegado en el siguiente, se borran.
  58.          */
  59.          for (m=son.options.length-1;m>0;m--)
  60.              son.options[m]=null;
  61.              // Reseteo la primera opcion
  62.              son.options[0]=new Option(displaywhenempty,valuewhenempty)
  63.              i=i+1
  64.         }
  65.  
  66. // Se crea un String con el nombre base ("stringa"), ejemplo: "data_1_0"
  67. // al que se agregara _0,_1,_2,_3 etc para obtener el nombre del combo box que se va a llenar.
  68.  
  69.     stringa='data'
  70.     i=0
  71.     while ((eval("typeof(document.getElementById(\"combo_"+i+"\"))!='undefined'")) &&
  72.            (document.getElementById("combo_"+i)!=null)) {
  73.            eval("stringa=stringa+'_'+document.getElementById(\"combo_"+i+"\").selectedIndex")
  74.            f1.continuar.style.display="block"; //Muestro el Boton cuando ya no hay mas combobox a mostrar.
  75.            if (i==currentbox) break;
  76.            i=i+1
  77.     }
  78.    
  79. // llenando el combo hijo ("son") Si es que existe.
  80.  
  81.     following=parseInt(currentbox)+1
  82.     if ((eval("typeof(document.getElementById(\"combo_"+following+"\"))!='undefined'")) &&
  83.        (document.getElementById("combo_"+following)!=null))
  84.     {
  85.        son = document.getElementById("combo_"+following);
  86.        stringa=stringa+"_"
  87.        i=0
  88.        while ((eval("typeof("+stringa+i+")!='undefined'")) || (i==0))
  89.         {
  90.                 /* Si no hay opciones, Vacio la primera opcion del combo hijo ("son")
  91.                 De lo contrario, pongo "-SubCategoria-"
  92.                 */
  93.                  if ((i==0) && eval("typeof("+stringa+"0)=='undefined'"))
  94.                         {
  95.                          if (eval("typeof("+stringa+"1)=='undefined'"))
  96.                             {
  97.                             eval("son.options[0]=new Option(displaywhenempty,valuewhenempty)")
  98.                            
  99.                                 f1.continuar.style.display="block"; //Muestro el Boton cuando no hay mas subcategorias aunque haya otro combobox.
  100.                             }
  101.                          else
  102.                             {
  103.                             eval("son.options[0]=new Option(displaywhennotempty,valuewhennotempty)")
  104.                                      f1.continuar.style.display="none"; //Oculto el Boton
  105.                                      f1.combo1.disabled=false
  106.                                      f1.combo1.style.display="block"
  107.                             }
  108.                         }
  109.               else
  110.                     eval("son.options["+i+"]=new Option("+stringa+i+".text,"+stringa+i+".value)")
  111.                     i=i+1      
  112.        }
  113.        i=1
  114.        combostatus=''
  115.        cstatus=stringa.split("_")
  116.        while (cstatus[i]!=null)
  117.         {
  118.           combostatus=combostatus+cstatus[i]
  119.           i=i+1
  120.         }
  121.        return combostatus;
  122.     }
  123. }

Aca el codigo Html.

Código HTML:
<html>
<head><title>combobox</title>
<script language="javascript" src="combobox.js"></script>
</head>
<body>
	<form name="f1" method="post" action="resultado.php">
	<select name="combo0" id="combo_0" onChange="change(this);" size="3">
		<option value="0">-Categoria-</option>
		<option value="1">1</option>
		<option value="2">2</option>
	</select>
	<br /><br />
	<select name="combo1" id="combo_1" onChange="change(this)" size="6">
		<option value="value1"> </option>
	</select>
	<br /><br />
	<select name="combo2" id="combo_2" onChange="change(this);" size="5">
		<option value="value1"> </option>
	</select>
	<br /><br />
	<select name="combo3" id="combo_3" onChange="change(this);" size="6">
		<option value="value1"> </option>
	</select>
	<br />
	<input id="continuar" type="submit" value="Continuar" style="display:none">
	</form>
</body>
</html> 
__________________
Si el empleo fuera como rentar una casa, entonces no rentes para siempre y busca la manera de Comprar. ;-)
Frase: Edgar Camarena

Última edición por Camarex; 18/03/2011 a las 23:15