2017-09-25 102 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