遇到一个问题,input框出现的个数不一定,是根据用户购买次数,从数据库中取到的。
所以input框的name,我就定义为moneybujian_加上流水号。
这样<input name="moneybujian_<?=$pi?>" type="text">
这个INPUT框的意思是填写本部件的价格。最下方还有个input框:
<input name="money" type="text" value="0">我希望在上面的多个input框(moneybujian_1、moneybujian_2 ……)填写金额后,将总价自动插入到下面的money框中。这个应该怎样用js写呢?

解决方案 »

  1.   


    <html lang="en">
    <head>
        <title>ss</title>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
        <script type="text/javascript">
    function getElementsByClassName(node,classname) {
      if (node.getElementsByClassName) { 
        return node.getElementsByClassName(classname);
      } else {
        return (function getElementsByClass(searchClass,node) {
            if ( node == null )
              node = document;
            var classElements = [],
                els = node.getElementsByTagName("*"),
                elsLen = els.length,
                pattern = new RegExp("(^|\\s)"+searchClass+"(\\s|$)"), i, j;

            for (i = 0, j = 0; i < elsLen; i++) {
              if ( pattern.test(els[i].className) ) {
                  classElements[j] = els[i];
                  j++;
              }
            }
            return classElements;
        })(classname, node);
      }
    }
    function getTotal(idPress) {
    var iTotal = 0;
    var txt_input = getElementsByClassName(document,"txt_input");
    for(var i = 0,iLen =txt_input.length;i<iLen;i++){
    var iValue = txt_input[i].value;
    if(iValue && !isNaN(iValue)){
    iTotal += parseInt(iValue);
    }
    }
    var txt_input = getElementsByClassName(document,txt_input);
    document.getElementById("txtTotal").value = iTotal
    }

    </script>
    </head>
    <body>
    <input type="text" class="txt_input" />
    <input type="text" class="txt_input" />
    <input type="text" class="txt_input" />
    <input type="text" class="txt_input" />
    <input type="text" class="txt_input" />
    总价:<input type="text" id="txtTotal" />
    <script type="text/javascript">
    var txt_input = getElementsByClassName(document,"txt_input");
    for(var i = 0,iLen =txt_input.length;i<iLen;i++){
    if (window.attachEvent){ txt_input[i].attachEvent("onblur",getTotal);};
         if (window.addEventListener){ txt_input[i].addEventListener("blur",getTotal,false)};
    }
    </script>
    </body>
    </html>
    一个DEMO希望对你有用
      

  2.   

        <input name="moneybujian_1" class="tj" type="text" />
        <input name="moneybujian_2" class="tj" type="text" />
        <input name="moneybujian_3" class="tj" type="text" />
        <input name="moneybujian_4" class="tj" type="text" />
        <input name="moneybujian_5" class="tj" type="text" />
        ........省略.........
        <input name="money" type="text" />
    //需要统计的input 添加 class="tj"
    <script type="text/javascript">
    $(function(){
        $(".tj").blur(function(){
            var i=0;
            $.each($(".tj"),function(n,item){
                i+=parseInt($(item).val(),10);
            });
            $("input[name='money']").val(i);
        }).keyup(function(){
           $(this).val($(this).val().replace(/[^\d.]/gi,""));
        })
    })
    </script>
      

  3.   


    居然用jquery  哥你真爽快 哈哈
      

  4.   


    <html>
    <head>
    <title> Test </title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <script type="text/javascript" src="jquery.1.4.2.src.js"></script>
    <script type="text/javascript">
    jQuery(function($) {
    var count = function() {
    var count = 0;
    // 遍历以moneybujian开头的文本框
    $("input[name^=moneybujian]").each(function() {
    var num = parseInt($(this).val());
    // 如果不是数字则忽略
    if (isNaN(num)) return true; // return true相当于continue
    count += num;
    });
    $("input[name=count]").val(count);
    };
    count(); // 文档加载完成时自动计算
    $("button").click(function() { // 绑定点击事件
    count(); // 点击按钮时计算
    });
    });
    </script>
    </head>

    <body>
    <p>单价: <input name="moneybujian_1" type="text" value="22" /></p>
    <p>单价: <input name="moneybujian_2" type="text" value="35" /></p>
    <p>单价: <input name="moneybujian_3" type="text" value="12" /></p>
    <p>单价: <input name="moneybujian_4" type="text" value="18" /></p>
    <p>单价: <input name="moneybujian_5" type="text" value="21" /></p>
    <p>合计: <input name="count" type="text">
    <p><button>计算</button></p>
    </body>
    </html>
      

  5.   

    <input name="moneybujian" type="text" />
    <input name="moneybujian" type="text" />
    <input name="moneybujian" type="text" />
    <input name="moneybujian" type="text" />
    <input name="moneybujian" type="text" />
    ........省略.........
    <input name="money" type="text" />
    //原生js也行,要统计的input统一名称
    <script type="text/javascript">
    var input=document.getElementsByName("moneybujian");
    var money=document.getElementsByName("money")[0];
    for(var i=0;i<input.length;i++){
        input[i].onkeyup=function(){
            this.value=this.value.replace(/[^\d.]/gi,"");
        };
        input[i].onblur=function(){
            var n=0;
            for(var i=0;i<input.length;i++){
                var l=input[i].value;
                if(l!="")n+=parseInt(l,10);
            }
            money.value=n;
        }
    }
    </script>
      

  6.   

    标准JavaScript<html>
    <head>
    <title> Test </title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <script type="text/javascript">
    function init() {
    var count = 0;
    // 遍历所有文本框
    var list = document.getElementsByTagName("input");
    for(var i = 0; i < list.length; i++) {
    var name = list[i].getAttribute("name");
    // 忽略不是moneybujian开头的
    if (!/^moneybujian/.test(name)) continue;
    var num = parseInt(list[i].value);
    // 如果不是数字则忽略
    if (isNaN(num)) continue;
    count += num;
    }
    document.getElementsByName("count")[0].value = count;
    }
    </script>
    </head>

    <body onload="init()">
    <p>单价: <input name="moneybujian_1" type="text" value="22" /></p>
    <p>单价: <input name="moneybujian_2" type="text" value="35" /></p>
    <p>单价: <input name="moneybujian_3" type="text" value="12" /></p>
    <p>单价: <input name="moneybujian_4" type="text" value="18" /></p>
    <p>单价: <input name="moneybujian_5" type="text" value="21" /></p>
    <p>忽略: <input name="xxxxx" type="text" value="2000" /></p>
    <p>合计: <input name="count" type="text">
    </body>
    </html>