- 下拉列表聯動多個文本框計算
-
<html>
<head>
<SCRIPT LANGUAGE="JavaScript">
<!-- Begin
var messages = new Array();
messages[0] = "美元"; //這裡寫入每個選項對應的說明文字
messages[1] = "人民幣";
messages[2] = "英鎊";
messages[3] = "日元";
messages[4] = "0.5"; //這裡寫入每個選項對應的說明文字
messages[5] = "0.6";
//根據需要,這裡應該隨著選項的改變而增減項目
function messageReveal() {
var messageindex = document.messageForm.messagePick.selectedIndex; //取得當前下拉菜單選定項目的序號
if(helpmsg = messages[1]){
helpmsg = messages[2];
helpmsg1 = messages[3]; //根據序號取得當前選項的說明
helpmsg2 = messages[4];
helpmsg3 = messages[5];
//想在這計算可以兌換的幣種了 每個幣種多少錢 應該看代碼就看明白 嘿嘿 但是我不知道怎麼就算了 每個條件裡都得計算
document.messageForm.messageField.value = helpmsg
document.messageForm.messageField1.value = helpmsg1 //將說明寫進文框
document.messageForm.messageField2.value = helpmsg2
document.messageForm.messageField3.value = helpmsg3
}else if(helpmsg = messages[2]){
//這個就不好使了 我不知道原因 我估計是else if()裡的條件不對 當然了寫的有點亂
helpmsg4 = messages[1];
helpmsg5 = messages[3]; //根據序號取得當前選項的說明
document.messageForm.messageField.value = helpmsg4
document.messageForm.messageField1.value = helpmsg5
}
}
// End -->
</SCRIPT>
<title>下拉菜單和文本框構建的介紹欄</title>
</head>
<body>
<form name="messageForm">
<select name="messagePick" OnChange="messageReveal()">
<option value="0">美元
<option>人民幣
<option>英鎊
<option>日元
</select>
金額<input id="money" type="text" />
<br><br><br><br><br>
幣種<input name="messageField" type="text" style="overflow:auto" />
兌換金額<input name="messageField4" type="text" style="overflow:auto" />
兌換利率<input name="messageField2" type="text" style="overflow:auto" /><br>
幣種<input name="messageField1" type="text" style="overflow:auto" />
兌換金額<input name="messageField5" type="text" style="overflow:auto" />
兌換利率<input name="messageField3" type="text" style="overflow:auto" />
</form>
</body>
</html>
這個是我寫的 但是我不知道為什麼 執行第二個條件執行不了 可能是條件不對 在沒個if裡都要有個計算 最好在我的基礎改動 這樣按能看明白 如果不是 請寫上注釋 謝謝
最佳回答:
<form name="messageForm">
<div class="refitem">
幣種:<select onchange="outputRst()" id="sMoney">
<option>請選擇..</option>
<option>美元</option>
<option>人民幣</option>
<option>英鎊</option>
<option>日元</option>
</select>
金額<input type="text" id="amount" onchange="outputRst()" />
</div>
<br /><br />
<table id="tbRst" border="1">
<tr><td>幣種</td><td>兌換金額</td><td>匯率</td></tr>
</table>
</form>
<script>
var rate = { 美元: { 人民幣: 6.5781, 英鎊: 0.6943, 日元: 119.53,美元:1 } };//參考對照
var Money = ',美元,人民幣,英鎊,日元,';
var tbRst = document.getElementById('tbRst'), tr,td;
var refMoney, refAmount, tMoney, tAmount, tRate;
var sel = document.getElementById('sMoney');
function outputRst() {
//移除上一次的轉換
while (tbRst.rows.length > 1) { tr = tbRst.rows[tbRst.rows.length - 1]; tr.parentNode.removeChild(tr); }
if (sel.selectedIndex == 0) return;
refMoney = sel.options[sel.selectedIndex].text;//參考幣種
refAmount = parseFloat(document.getElementById('amount').value) || 0;//數量
var arr = Money.replace(',' + refMoney + ',',',').replace(/^,|,$/g, '').split(',');//刪除參考幣種後拆分得到目標幣種
for (var i = 0; i < arr.length; i++) {
tMoney = arr[i];
if (refMoney == '美元') tRate = rate.美元[tMoney];//美元,有參考值可取,不需要計算
else tRate = 1 / rate.美元[refMoney] * rate.美元[tMoney]; //不是美元,需要重新換算匯率
tr = tbRst.insertRow(tbRst.rows.length);
td = tr.insertCell(0); td.innerHTML = tMoney;
td = tr.insertCell(1); td.innerHTML = (tRate * refAmount).toFixed(2);
td = tr.insertCell(2); td.innerHTML = tRate.toFixed(4);
}
}
</script>