2011-12-02 20 views
0

我有兩個下拉菜單。我不想使用javascript顯示下拉值

第一 - >下拉菜單(名稱= 「DropDown1」)具有2個值,其是ABC和ABCD
第二 - >下拉菜單(名稱= 「DropDown2」)具有3個值,其爲1,2和3 。

現在我的問題是,如果用戶從DropDown1中選擇ABC,那麼我怎樣才能得到它,因此DropDown2只顯示值1和2而不是3,這是因爲你不能選擇3個答案對於ABC,但是如果用戶從DropDown1中選擇ABCD,則能夠在DropDown2中顯示值1,2和3。

謝謝

回答

1

我會設置一個鍵/值對的對象,它可以保存您的選擇可能性。然後綁定到DropDown1上的更改事件,以便在DropDown2更改時重寫其選項。

您的JavaScript對象會是這個樣子......

var DropOne = new Array(); 

DropOne.ABC = [1, 2]; 
DropOne.ABCD = [1, 2, 3]; 

如果jQuery的標籤添加到我會高興地告訴你一些工作代碼的問題。我不能這樣做,在純javascript我的頭,雖然頂部...哎呦:)

好吧......好這裏是使用jQuery,如果你想它...

http://jsfiddle.net/brettzink/pND9u/

+0

太多的jQuery讓你忘了舊的javascript :) +1 jQuery的版本;) – mprabhat

+0

這是真的。我也不會爲此感到不安。 :) 謝謝。 – BZink

1

你必須有兩個數組和問題的選擇你有來填充答案選項中進行選擇,示例代碼:

<html> 
    <head> 
    <title>Question Answer Test</title> 
    <script type="text/javascript"> 
     var dropdown1 = []; 
     var dropdown2 = []; 

     dropdown1[0] = new Option("1", "1"); 
     dropdown1[1] = new Option("2", "2"); 

     dropdown2[0] = new Option("1", "1"); 
     dropdown2[1] = new Option("2", "2"); 
     dropdown2[2] = new Option("3", "3"); 

     function populateAnswer(qusSelectBox, ansSelectBox){ 
      var tempMenuItem; 
      ansSelectBox.options.length = 0; 

      switch (qusSelectBox.selectedIndex) { 
       case 0: 
        tempMenuItem = dropdown1; 
        break; 
       case 1: 
        tempMenuItem = dropdown2; 
        break; 
      } 

      for (var i = 0; i < tempMenuItem.length; i++) { 
       ansSelectBox.options[i] = tempMenuItem[i]; 
      } 
    } 

    </script> 
    </head> 
    <body> 
     <form name="Menus"> 
      <select name="Question" onchange="populateAnswer(this, this.form.Answer);"> 
       <option value="ABC">ABC</option> 
       <option value="ABCD">ABCD</option> 
      </select> 
      <select name="Answer"> 
       <option value="1">1</option> 
       <option value="2">2</option> 
      </select> 
     </form> 
    </body> 
</html>