热呛 2016-02-03 05:20 采纳率: 100%
浏览 2352
已采纳

下拉列表联动多个文本框计算

图片说明

 <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里都要有个计算   最好在我的基础改动 这样按能看明白   如果不是 请写上注释 谢谢
  • 写回答

7条回答 默认 最新

  • Go 旅城通票 2016-02-03 07:16
    关注
    
        <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>
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(6条)

报告相同问题?

悬赏问题

  • ¥15 vs2019中数据导出问题
  • ¥20 云服务Linux系统TCP-MSS值修改?
  • ¥20 关于#单片机#的问题:项目:使用模拟iic与ov2640通讯环境:F407问题:读取的ID号总是0xff,自己调了调发现在读从机数据时,SDA线上并未有信号变化(语言-c语言)
  • ¥20 怎么在stm32门禁成品上增加查询记录功能
  • ¥15 Source insight编写代码后使用CCS5.2版本import之后,代码跳到注释行里面
  • ¥50 NT4.0系统 STOP:0X0000007B
  • ¥15 想问一下stata17中这段代码哪里有问题呀
  • ¥15 flink cdc无法实时同步mysql数据
  • ¥100 有人会搭建GPT-J-6B框架吗?有偿
  • ¥15 求差集那个函数有问题,有无佬可以解决