Ten blog nie jest już rozwijany. Wraz ze wszystkimi artykułami zostały przeniesiony pod adres wmroczkowski.pl

Czy chcesz przejść pod nowy adres?

czwartek, 18 czerwca 2009

[JS] Jak zrobić podwójny formularz wyboru w którym drugie pole zmienia się w zależności od wyboru w pierwszym

Ostatnio potrzebowałem formularza z dwoma polami wybory w których drugie pole zmienia się w zależności od wybranej wartości w pierwszym polu. W moim przypadku chodziło o to, żeby mieć możliwość wyboru domyślnej klasy maski sieci w pierwszej polu, tak żeby w drugim polu wyświetlały się dostępny. Rozwiązałem to w następujący sposób:

  1. <form name="form" action="index.php" method="get">

  2. <select name="classes" onChange="switch_m(this.options.selectedIndex)">


  3.   <option>Klasa A</option>

  4.   <option>Klasa B</option>

  5.   <option>Klasa C</option>


  6. </select>

  7. <select name="mask"></select>

  8. <input type="submit" value="wyślij" />


  9. </form>

  10.  

  11. <script language="javascript" type="text/javascript">

  12. <!--

  13.  

  14. function switch_m(wybor) {


  15.   l2=document.form.mask;

  16.   for (i=0;i<l2.options.length;i++) l2.options[i]=null;


  17.   for (i=0;i<opcje[wybor].length;i++)

  18.     l2.options[i]=new Option(opcje[wybor][i].value,opcje[wybor][i].text);


  19. }

  20.  

  21. ile_lista1=document.form.classes.options.length;

  22. opcje=new Array(ile_lista1)


  23. for (i=0;i<ile_lista1;i++) opcje[i]=new Array();


  24.  

  25. opcje[0][0]=new Option("8","255.0.0.0")

  26. opcje[0][1]=new Option("9","255.128.0.0")


  27. opcje[0][2]=new Option("10","255.192.0.0")

  28. opcje[0][3]=new Option("11","255.224.0.0")


  29. opcje[0][4]=new Option("12","255.240.0.0")

  30. opcje[0][5]=new Option("13","255.248.0.0")


  31. opcje[0][6]=new Option("14","255.252.0.0")

  32. opcje[0][7]=new Option("15","255.254.0.0")


  33.  

  34. opcje[1][0]=new Option("16","255.255.0.0")

  35. opcje[1][1]=new Option("17","255.255.128.0")


  36. opcje[1][2]=new Option("18","255.255.192.0")

  37. opcje[1][3]=new Option("19","255.255.224.0")


  38. opcje[1][4]=new Option("20","255.255.240.0")

  39. opcje[1][5]=new Option("21","255.255.248.0")


  40. opcje[1][6]=new Option("22","255.255.252.0")

  41. opcje[1][7]=new Option("23","255.255.254.0")


  42.  

  43. opcje[2][0]=new Option("24","255.255.255.0")

  44. opcje[2][1]=new Option("25","255.255.255.128")


  45. opcje[2][2]=new Option("26","255.255.255.192")

  46. opcje[2][3]=new Option("27","255.255.255.224")


  47. opcje[2][4]=new Option("28","255.255.255.240")

  48. opcje[2][5]=new Option("29","255.255.255.248")


  49. opcje[2][6]=new Option("30","255.255.255.252")

  50. opcje[2][7]=new Option("31","255.255.255.254")


  51.  

  52.  

  53. switch_m(0);

  54. // -->

  55. </script>

Brak komentarzy: