通过JS填充主下拉列表中的辅助下拉列表

时间:2010-11-09 13:07:55

标签: javascript drop-down-menu

我有一个下拉列表,必须根据所选的选项填充其他几个下拉列表。我找到了一种使用隐藏字段的方法。我为每个子下拉列表创建了一个隐藏字段及其所有选项。然后从我的JS函数中,检查选择了哪个selectedIndex,然后给出其各自隐藏字段的值。

这种方法效果很好,但是,我使用变量ID FROM Js函数设置子下拉列表的值。这降低了灵活性。

有没有人知道如何从HTML中传递所有参数?

最好的方法是所有下拉列表都在那里但不显示。更改主下拉列表后,将显示相应的子下拉列表。

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

如果我了解此问题,您的帖子中不会返回隐藏的值?为了解决这个问题,我在提交时运行一个例程,它抓取所有隐藏的值并将它们放入hidden类型的非隐藏输入中。

所以......假设你使用的jquery就像

那样
<div id='hiddenValues'></div>
<script type='text/javascript'>
    function onSubmit() {
        var hiddenValue = $('$yourHiddenSelectBox').val();
        $('#hiddenValues').append("<input type='hidden' name='someId' value='" + hiddenValue + "'>";
    }
 </script>

答案 1 :(得分:1)

你应该能够做你想做的事情,把所有的下拉菜单都隐藏起来,除了正确的。

<script type="text/javascript"> 
function changedropdown(index) {
  dropdowns['dropdown1'].style.display='none';
  dropdowns['dropdown2'].style.display='none';
  dropdowns['dropdown3'].style.display='none';
  dropdowns['dropdown4'].style.display='none';
  dropdowns[index].style.display='inline';
}
</script> 

<form name='dropdowns'> 
  <select onchange='changedropdown(options[selectedIndex].value)'> 
    <option selected value='dropdown1'>1</option> 
    <option value='dropdown2'>2</option> 
    <option value='dropdown3'>3</option> 
    <option value='dropdown4'>4</option> 
  </select> 

  <select name='dropdown1'> 
    <option selected value=1>dropdown1</option> 
  </select> 
  <select style='display:none' name='dropdown2'> 
    <option selected value=1>dropdown2</option> 
  </select> 
  <select style='display:none' name='dropdown3'> 
    <option selected value=1>dropdown3</option> 
  </select> 
  <select style='display:none' name='dropdown4'> 
    <option selected value=1>dropdown4</option> 
  </select>
</form>