代码中的要删除onChange="sumCols();"
前段时间做了一个javascript的代码,但是onchange不起效果,所以才发帖请教

解决方案 »

  1.   

    其实要解决的问题是:如何将多个input的value相加?
      

  2.   

    你用html做个伪代码 说明下 你要做什么 不然看不明白你的需求 你给的代码乱
      

  3.   

    谢谢五楼的提醒,html代码如下:
    <form name="form1" action="a.asp" method="post"> 
    <input name=" a1" type="text" onChange="form1. b1.value=2*parseFloat(form1. a1.value)" > <input name=" b1" type="text" disabled > 
    <input name=" a2" type="text" onChange="form1. b2.value=2*parseFloat(form1. a2.value)" > <input name=" b2" type="text" disabled > 
    ......
    <input name=" a100" type="text" onChange="form1. b100.value=2*parseFloat(form1. a100.value)" > <input name=" b100" type="text" disabled > 
    <input name="zje" type="text">
    </form>
    我已经将b1到b100可以自动计算,但是我想zje是b1到b100的相加的结果,我不懂如何通过循环解决问题。
      

  4.   

    <form name="form1" action="a.asp" method="post"> 
    <input name="a1" type="text" onChange="form1.b1.value=2*parseFloat(form1.a1.value)" > <input name="b1" type="text" disabled > 
    <input name="a2" type="text" onChange="form1.b2.value=2*parseFloat(form1.a2.value)" > <input name="b2" type="text" disabled > <input name="a100" type="text" onChange="form1. b100.value=2*parseFloat(form1.a100.value)" > <input name="b100" type="text" disabled > 
    <input name="zje" type="text" onfocus="Total()">
    <SCRIPT LANGUAGE="JavaScript">
    <!--
    var num = 0;

    function Total(){
    var oInput = document.getElementsByTagName("input");
    for(var i = 0; i<oInput.length; i++){
    if(oInput[i].name.substr(0,1)=="a" || oInput[i].name.substr(0,1)=="b" ){

    num += parseInt(oInput[i].value);
    }
    }
    document.getElementsByName("zje")[0].value = num;
    }
    //-->
    </SCRIPT>
    </form>
      

  5.   


    <form name="form1" action="a.asp" method="post"> 
    <input name="a1" type="text" onkeyup="if(/\D/.test(this.value)){alert('只能输入数字');this.value='';form1.b1.value='';} else {form1.b1.value=2*parseFloat(form1.a1.value);}" > <input name="b1" type="text" disabled > 
    <input name="a2" type="text" onkeyup="if(/\D/.test(this.value)){alert('只能输入数字');this.value='';form1.b2.value='';} else {form1.b2.value=2*parseFloat(form1.a2.value);}" > <input name="b2" type="text" disabled > <input name="a100" type="text" onkeyup="if(/\D/.test(this.value)){alert('只能输入数字');this.value='';form1.b100.value='';} else {form1. b100.value=2*parseFloat(form1.a100.value);}" > <input name="b100" type="text" disabled > 
    <input name="zje" type="text" onfocus="Total()">
    <SCRIPT LANGUAGE="JavaScript">
    <!--
        var num = 0;
        
        function Total(){
        var oInput = document.getElementsByTagName("input");
            for(var i = 0; i<oInput.length; i++){
                if(oInput[i].name.substr(0,1)=="a" || oInput[i].name.substr(0,1)=="b" ){
                  if (parseInt(oInput[i].value)>=0)
      {
                    num += parseInt(oInput[i].value);
      }
                }
            }        document.getElementsByName("zje")[0].value = num;
        }
    //-->
    </SCRIPT>
    </form>
      

  6.   

    <form name="form1" action="a.asp" method="post"> 
    <input name="a1" type="text" onkeyup="if(/\D/.test(this.value)){alert('只能输入数字');this.value='';form1.b1.value='';} else {form1.b1.value=2*parseFloat(form1.a1.value);}" > <input name="b1" type="text" disabled > 
    <input name="a2" type="text" onkeyup="if(/\D/.test(this.value)){alert('只能输入数字');this.value='';form1.b2.value='';} else {form1.b2.value=2*parseFloat(form1.a2.value);}" > <input name="b2" type="text" disabled > <input name="a100" type="text" onkeyup="if(/\D/.test(this.value)){alert('只能输入数字');this.value='';form1.b100.value='';} else {form1. b100.value=2*parseFloat(form1.a100.value);}" > <input name="b100" type="text" disabled > 
    <input name="zje" type="text" onfocus="Total()">
    <SCRIPT LANGUAGE="JavaScript">
    <!--
        var num = 0;
        
        function Total(){
        var oInput = document.getElementsByTagName("input");
            for(var i = 0; i<oInput.length; i++){
                if(oInput[i].name.substr(0,1)=="a" || oInput[i].name.substr(0,1)=="b" ){
                  if (parseInt(oInput[i].value)>=0)
                  {
                    num += parseInt(oInput[i].value);
                  }
                }
            }        document.getElementsByName("zje")[0].value = num;
        }
    //-->
    </SCRIPT>
    </form>
      

  7.   

    我想zje是b1到b100的相加啊大家给的答案是全部input相加啊
      

  8.   


    <input name="a100" type="text" onChange="form1. b100.value=2*parseFloat(form1.a100.value)" > <input name="b100" type="text" disabled > 
    <input name="zje" type="text" onfocus="Total()">
    <SCRIPT LANGUAGE="JavaScript">
    <!--
        var num = 0;
        
        function Total(){
        var oInput = document.getElementsByTagName("input");
            for(var i = 0; i<oInput.length; i++){
                if(oInput[i].name.substr(0,1)=="b" ){//把这改下就可以了
                
                    num += parseInt(oInput[i].value);
                }
            }
            document.getElementsByName("zje")[0].value = num;
        }
    //-->
    </SCRIPT>
    </form>
      

  9.   

    谢谢s_liangchao1s 及jhwcd 。
    但是还是有问题我在IE中测试,填了a1及a2的值后,在zje单击鼠标后得到答案(zje=b1+b2),但是我再填了a3的值后,zje答案却错误,即zje不等于b1+b2+b3,而是zje=b1+b2+b1+b2+b3,就是zje累加多一次。
      

  10.   


    自己解决了问题
    将var num = 0;放到function里面<input name="a100" type="text" onChange="form1. b100.value=2*parseFloat(form1.a100.value)" > <input name="b100" type="text" disabled > 
    <input name="zje" type="text" onfocus="Total()">
    <SCRIPT LANGUAGE="JavaScript">
    <!--
        
        
        function Total(){
        var num = 0;
        var oInput = document.getElementsByTagName("input");
            for(var i = 0; i<oInput.length; i++){
                if(oInput[i].name.substr(0,1)=="b" ){//把这改下就可以了
                
                    num += parseInt(oInput[i].value);
                }
            }
            document.getElementsByName("zje")[0].value = num;
        }
    //-->
    </SCRIPT>
    </form>