javascript下拉单击onclick更改元素属性

时间:2017-09-25 13:42:53

标签: javascript

由于某种原因,属性值不会改变。我对JavaScript知之甚少。任何帮助将不胜感激。



function change(amount) {
  document.getElementsByName("sold_amount").value = amount;
}

<input type="hidden" name="sold_amount">

<div class="dropdown">
  <button class="btn btn-primary dropdown-toggle" type="button" data-toggle="dropdown">Sold amount
        <span class="caret"></span></button>
  <ul class="dropdown-menu">
    <li><a href='#' onclick="change(10000)">10000</a></li>
    <li><a href='#' onclick="change(20000)">20000</a></li>
    <li><a href='#' onclick="change(30000)">30000</a></li>
  </ul>
&#13;
&#13;
&#13;

2 个答案:

答案 0 :(得分:3)

使用getElementsByName时,请注意elementS;它的复数。这意味着该函数返回一个NodeList集合(类似于数组)。您应该使用document.getElementsByName("sold_amount")[0].value=amount;

你仍然没有将其视为type="hidden",而是在那里。您可以使用开发人员工具检查输入以查看更改。

答案 1 :(得分:0)

试试这个:

  <input type="text" id="sold_amount" name="sold_amount">
  <script>
  function change(amount)
  {
    document.getElementById("sold_amount").value=amount;
  }
  </script>
  <div class="dropdown">
     <button class="btn btn-primary dropdown-toggle" type="button" data-toggle="dropdown">Sold amount
      <span class="caret"></span></button>
      <ul class="dropdown-menu">
       <li><a href='#' onclick="change(10000)">10000</a></li>
       <li><a href='#' onclick="change(20000)">20000</a></li>
       <li><a href='#' onclick="change(30000)">30000</a></li>
     </ul>

https://jsfiddle.net/igasparetto/g0j6342r/

我认为您需要对代码进行其他更改。看看事件委托,也许,当你使用CSSBoostrap时,可能依赖于jQuery。