0

これが私が欲しいものです

ユーザーがオプション 1 を選択すると、dropdown2 が表示されます。ユーザーがオプション 2 を選択すると、dropdown3 が表示されます。

ユーザーがフォームを送信すると、オプション 1/2 とドロップダウン 2/3 から選択された値が使用可能になります。

私が試したこと:IDを同じに保ちましたが、非表示/表示が難しくなります。ID を別のものにして、非表示/表示は簡単ですが、フォーム送信は dropdown2/3 の両方の値を送信します。

<script type="text/JavaScript">    
    function show(id) {  
        if (document.getElementById(id).style.display == 'none') {  
            document.getElementById(id).style.display = '';  
        }  
    }  

    function hide(id) {  
        document.getElementById(id).style.display = 'none';  
    }    
</script>

<form  action="showdetails.php" method="post">
  <select class="dropdown1" name="desire">
    <option selected="selected" onclick="show('ID1');hide('id2');">Option 1</option>
    <option onclick="hide('ID1');show('ID2');">Option 2</option>
  </select>
  <select id="dropdown2" class="dropdown" name="action">
    <option selected="selected">Value1</option>
    <option>Value 2</option>
    <option>Value 3</option>
  </select>
  <select id="dropdown3" class="dropdown" name="action" >
    <option>Room</option>
  </select>
  <input type="submit" id="submit" title="Go"/>
</form>
4

2 に答える 2

1

disabled属性を使用して、selectのいずれかが送信されないようにすることができます。2 つに異なる を持たせたいのは間違いありませんidが、同じ を指定してname1 つを無効にすると、1 つだけが送信されます。

function show(id) { 
    var dropdown = document.getElementById(id); 
    if (dropdown.style.display == 'none') {  
        dropdown.style.display = '';
        dropdown.removeAttribute('disabled');  
    }  
}  

function hide(id) {  
    var dropdown = document.getElementById(id); 
    dropdown.style.display = 'none'; 
    dropdown.setAttribute('disabled', 'disabled'); 
}  
于 2013-05-27T18:06:40.383 に答える
1

両方のドロップダウン リストに同じ名前のプロパティを追加するだけで、異なる ID を割り当てます。id はドロップダウンリストを非表示または表示するのに役立ち、同じ名前はサーバー側でドロップダウンリストの値にアクセスするのに役立ちます。formCollection で dropdownlist の値を取得できます。

于 2013-05-27T18:04:07.487 に答える