由于某种原因,属性值不会改变。我对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;
答案 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。