簡體   English   中英

Javascript onchange函數無法處理select標記

[英]Javascript onchange function not working on select tag

我創建了2個輸入字段和1個選擇字段,我應用onchange()函數來選擇調用javascript的標記,該腳本進行計算並在其他兩個字段中顯示,但由於某些語法或邏輯原因它不起作用。 請看看我的代碼,任何幫助將不勝感激。

<html>
<head>
<script type="text/javascript">
function update() {
var x = document.getElementsByName("n_person").value;
document.getElementsByName("m_income").value= x*5;
document.getElementsByName("y_income").value= x*4;
}
</script>
</head>

<body>


<div class="elist"> <span class="b_text"><span>*</span>Level 1:</span>
// here is select tag where I put onchage function  <select class="ifield" name="n_person" onChange="update()">
    <option value="" selected="selected">Choose no. of person referred</option>
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
  </select>
// These are teh input where resultant value will appear  <input type="text" value="" placeholder="Your weekly Income..." name="m_income" id="weekly_income" class="field" readonly required />
  <input type="text" value="" placeholder="Your day Income..." name="y_income" id="day_income" class="field" readonly required/>
</div>
<!--elist-->

</body>
</html>

看到這個小提琴

更新了JS

function update() {
  var x = document.getElementsByName("n_person")[0].value;
  document.getElementsByName("m_income")[0].value = x * 5;
  document.getElementsByName("y_income")[0].value = x * 4;
}

你的JS的問題是你沒有使用getElementsByName正確的HTML元素。

在這里閱讀更多相關信息

正如其名稱所示,方法getElementsByName返回具有指定名稱而不僅僅是一個元素的元素列表。 在您的情況下,名稱對於文檔是唯一的,並且該方法將返回僅包含一個值的列表,但您仍需要索引此列表。 因此,您必須更改此:

var x = document.getElementsByName("n_person").value;

var x = document.getElementsByName("n_person")[0].value;

這也適用於getElementsByName的其他用途,您的代碼也可以使用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM