将相同的值发送到onchange上的两个隐藏字段

时间:2011-07-27 04:02:58

标签: forms select onchange drop-down-menu

我很难将相同的值传递给两个隐藏的字段。因此,例如,如果我选择产品1,我希望两个隐藏字段的值都为X。

<select>
<option value="X">Product 1</option>
<option value="Y">Product 2</option>
<option value="Z">Product 3</option>
</select>
<input id="test" name="product_id[]" type="hidden" value="">
<input id="test" name="product_id" type="hidden" value="">

我尝试过使用onchange方法,但我只能传递一个隐藏字段中的一个,而不是两个。

这是我尝试过的,授予我在两个字段中都使用相同的ID,我认为现在这两个字段都不起作用。

<form action="../index.php" method="post" >     
 <div id="Select">
          <select id="myselect" onchange="this.form.prodhid.value=this.selectedIndex">
    <option>Please Select an Amount</option>
             <option value="1">Product 1</option>
            <option value="2">Product 2</option>
            <option value="3">Product 3</option>
    </select>    
     <input type="hidden" name="product_id[]" id="prodhid" value="" />
     <input type="hidden" name="product_id" id="prodhid" value="" />
<input value="Add to Cart" title="Add to Cart" type="submit">
</form>

1 个答案:

答案 0 :(得分:0)

您无法访问具有相同ID的两个DOM元素。所以你可以将你的标记改为这样的

<input id="test1" name="product_id[]" type="hidden" value="">
<input id="test2" name="product_id" type="hidden" value="">

或者您可以尝试这样的事情:

<html>
  <head>
    <script type="text/javascript">
      function change()
      {
        var list = document.getElementById('test-group')
                           .getElementsByTagName('INPUT');
        for (var i = 0; i < list.length; ++i)
          list[i].value = 'X';
      }
    </script>
  </head>
  <body>    
    <select onchange="change()">
      <option value="X">Product 1</option>
      <option value="Y">Product 2</option>
      <option value="Z">Product 3</option>
    </select>
    <div id="test-group">
      <input name="product_id[]" type="hidden" value="">
      <input name="product_id" type="hidden" value="">
    </div>
  </body>
</html>