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

问题描述

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

 <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>

解决方案二:

if(helpmsg = messages[1]){

怎么只有一个=
你这是在 设值呢
它永远都是1 true

解决方案三:

第一个if 是true当然不会执行第二个了

解决方案四:

helpmsg 你在哪定义的?而且比较是==,不是=
你是=的话给helpmsg赋值message[1],message[1]是人民币,判断永远为真

  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
    }

解决方案五:

你学点js 调试的技巧吧。这样遇到问题你就知道哪里出错,先看看debug js

解决方案六:

 <html>
<head>
<title>下拉菜单和文本框构建的介绍栏</title>
</head>
<body>
    <form name="messageForm">
        <div class="refitem">
            币种:<select>
                <option>美元</option>
                <option>人民币</option>
                <option>英镑</option>
                <option>日元</option>
            </select>
            金额<input type="text" />
        </div>
        <br /><br />
        <div class="item">
            币种:<select>
                <option>美元</option>
                <option>人民币</option>
                <option>英镑</option>
                <option>日元</option>
            </select>
            金额<input type="text" readonly />
            兑换利率<input type="text" readonly />
        </div>
        <div class="item">
            币种:<select>
                <option>美元</option>
                <option>人民币</option>
                <option>英镑</option>
                <option>日元</option>
            </select>
            金额<input type="text" readonly />
            兑换利率<input type="text" readonly />
        </div>
    </form>

<script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.11.1.min.js"></script>
<script>
    var rate = { 美元: { 人民币: 6.5781, 英镑: 0.6943, 日元: 119.53,美元:1 } };//参考对照
    var ipts, refMoney, refAmount, tMoney, tAmount,tRate;
    $('div.refitem :input,div.item select').change(function () {
        ipts = $(':input', 'div.refitem');
        refMoney = ipts[0].options[ipts[0].selectedIndex].text;//参考币种
        refAmount = parseFloat(ipts[1].value) || 0;//数量

        $('div.item').each(function () {
            ipts = $(':input', this);
            tMoney = ipts[0].options[ipts[0].selectedIndex].text;//目标币种
            if (refMoney == '美元') tRate = rate.美元[tMoney];//美元,有参考值可取,不需要计算
            else tRate = 1 / rate.美元[refMoney] * rate.美元[tMoney]; //不是美元,需要重新换算汇率
            ipts[1].value = (tRate * refAmount).toFixed(2);
            ipts[2].value = tRate.toFixed(4);
        });
    });
</script>
</body>
</html>

解决方案七:

跟图片一样 当选择完币种,填入金额失去焦点之后 是图片上的这个样子的

时间: 2024-09-14 00:58:32

select-下拉列表联动多个文本框计算的相关文章

最简单js代码实现select二级联动下拉菜单_javascript技巧

本文实例为大家分享了js实现select二级联动下拉菜单,供大家参考,具体内容如下 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.

php+js实现省市[select下拉列表]二级关联菜单效果

<head> <meta http-equiv="Content-Type" ontent="text/html; charset=gb2312" /> <title>表单元素[select下拉列表]制作二级联动菜单</title> <?php $link = mysql_connect('localhost','root','root') or die( mysql_error());   mysql_sele

下拉菜单-求php两个下拉列表联动解决办法.

问题描述 求php两个下拉列表联动解决办法. 选择科室后,对应员工姓名根据选择的科室获取,怎么做到. 两个列表的代码: ``` echo "-请选择-??"; <?php @include "conn.php"; //链接数据库 $gzh_num_result=mysql_query("select gzh_num , gzh_name from gongzhong where gzh_renum=0 order by gzh_num ;"

ComboBox控件输入文本弹出下拉列表根据输入的文本在数据库查找~~

问题描述 ComboBox控件输入文本,显示下拉列表根据输入的文本在数据库模糊查找列表显示出查找的值.求大神解答给代码,小弟万分感谢. 解决方案 解决方案二:http://bbs.csdn.net/topics/300154879解决方案三:onchange事件中,根据内容区select数据集,然后遍历数据集,添加到items解决方案四:选择a,返回bprivatevoidcomboBox1_SelectedIndexChanged(objectsender,EventArgse){string

基于MVC3方式实现下拉列表联动(JQuery)_jquery

上次项目中遇到一个需要多个下拉列表联动的操作,今天有空将实现方式整理以便以后参考. 要达到的效果是,点击一个下拉框,则另一个下拉框的值发生对应变化.如:选择中国,则另个一下拉框里显示中国各个省份. 传统的HTML方式比较简单,实际上基于MVC的实现方式也大同小异. 直接上代码: 复制代码 代码如下: public class DP_Provice { public int proviceID { get; set; } public string ProviceName { get; set;

删除-通过select下拉列表来改变单元格中的数据

问题描述 通过select下拉列表来改变单元格中的数据 我想通过select下拉列表来改变单元格中的数据//-------------------------------------------------第五行删除按钮--------------------------------------------------------------- fifthCell.innerHTML = '===请选择===运行就绪等待 onchange=""func()""';/

用CSS改变select下拉列表的边框

用CSS改变select下拉列表的边框样式代码. 以下是HTML网页特效代码,点击运行按钮可查看效果: [Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]

获取select元素被选中的文本内容的js代码

 获取select元素被选中的文本内容的方法有很多,本文为大家介绍下使用javascript来轻松实现下  代码如下: var sel=document.getElementById(id);//select元素的id  var index=sel.selectedIndex;//获取被选中的option的索引  var textsel= sel.options[index].text;//获取相应的option的内容     

使用js实现一个可编辑的select下拉列表

 这篇文章主要介绍了使用js实现一个可编辑的select下拉列表,个人感觉还不错,需要的朋友可以参考下  代码如下: <select id="name" name="name"  onkeydown="clearSelect(this,event);"  onkeypress="writeSelect(this,event);" style="width:70px;">  <option