2017-09-25 108 views
0

由于某种原因,属性值不变。我对JavaScript有一定的了解。任何帮助,将不胜感激。javascript dropdown onclick变更元素属性

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>

回答

3

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

你仍然没有看到它作为type="hidden",但它在那里。您可以使用开发人员工具检查输入以查看更改。

+0

谢谢。有效。 –

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。

+1

我有一个JavaScript的基本知识,截至目前。肯定会检查jsfiddle。谢谢。 –

+0

这很好,你需要从某个地方开始。我不明白为什么人们对低级投票的开发者提出疑问。事情起初很困难。 – igasparetto