hookee你好!固定有十行给他填写。不会超过。
自动生成在文本框中,如果不出意外,他们不需要修改。只需要输入第一行的日期和其他行的金额即可。
谢谢

解决方案 »

  1.   

    <script>
    var dt = new Date();
    var s = "";
    var m = dt.getMonth()+1;
    var y = dt.getFullYear();
    var d = dt.getDate();
    var lastDay;
    var f;function init(){
    f = document.form1;
    lastDay = getLastDay(m,y);
    for(var i=0;i<10;i++){
      var mm, obj;
      mm = m + i;
      if(mm<=12){
       obj = eval("f.m"+i);
        obj.value = mm;
        obj.index = i;
        obj.onblur=check;
        obj = eval("f.d"+i);
        if(getLastDay(mm,y)<lastDay) obj.value = getLastDay(mm,y);
        else obj.value = d;
        obj.index = i;
        obj.onblur=check;
        obj = eval("f.y"+i);
        obj.value = y;
        obj.index = i;
        obj.onblur=check;
        obj = eval("f.s"+i);
        obj.value = 0;
        obj.onblur=getSum;
      }
      else{
        obj = eval("f.s"+i);
        obj.value = 0;
      }
    }
    getSum();
    }function getLastDay(pm,py){
      pm = parseInt(pm);
      py = parseInt(py);
      var dt2 = new Date(py,pm,1-1);
      return dt2.getDate();
    }function getSum(){
      var sum = 0;
      for(var i=0;i<10;i++){
       obj = eval("f.s"+i);
        if(obj.value=="" || isNaN(obj.value)) obj.value = 0;
        sum += parseFloat(obj.value);
      }
      f.sum.value = sum;
    }function check(){
    var obj = event.srcElement;
    if(isNaN(obj.value)){alert("该字段不是数字!");obj.focus();return false;}
    var index = obj.index;
    var om = eval("f.m" + index);
    var oy = eval("f.y" + index);
    var od = eval("f.d" + index);
        var cm  = parseInt(om.value)-1;
        var cd  = parseInt(od.value);
        var cy  = parseInt(oy.value);
        var cdt = new Date(cy,cm, cd);
        if(cdt.getFullYear()!= cy || cdt.getMonth() != cm || cdt.getDate() != cd){
          alert("日期无效!");obj.focus();return false;
        }
        for(var i=0;i<index;i++){
          var onm = eval("f.m" + i);
      var ony = eval("f.y" + i);
      var ond = eval("f.d" + i);
          var nm = parseInt(onm.value)-1;
      var ny = parseInt(ony.value);
      var nd = parseInt(ond.value);
      var ndt = new Date(ny,nm, nd);
      if(ndt.getTime()>cdt.getTime()){
       alert("日期小于前面的日期!");obj.focus();return false;
      }
        }
        for(var i=index+1;i<10;i++){
          var onm = eval("f.m" + i);
      var ony = eval("f.y" + i);
      var ond = eval("f.d" + i);
          if(onm.value != "" && ony.value != "" && ond.value!= ""){
            var nm = parseInt(onm.value)-1;
        var ny = parseInt(ony.value);
        var nd = parseInt(ond.value);
        var ndt = new Date(ny,nm, nd);
        if(ndt.getTime()<cdt.getTime()){
         alert("日期大于后面的日期!");obj.focus();return false;
        }
      }
        }
    }</script><body onload="init();">
    <form name="form1">
    <table>
    <tr>
    <td><input type='text' name='m0'/>月</td>
    <td><input type='text' name='d0'/>日</td>
    <td><input type='text' name='y0'/>年</td>
    <td><input type='text' name='s0'/>金额</td>
    </tr>
    <tr>
    <td><input type='text' name='m1'/>月</td>
    <td><input type='text' name='d1'/>日</td>
    <td><input type='text' name='y1'/>年</td>
    <td><input type='text' name='s1'/>金额</td>
    </tr>
    <tr>
    <td><input type='text' name='m2'/>月</td>
    <td><input type='text' name='d2'/>日</td>
    <td><input type='text' name='y2'/>年</td>
    <td><input type='text' name='s2'/>金额</td>
    </tr>
    <tr>
    <td><input type='text' name='m3'/>月</td>
    <td><input type='text' name='d3'/>日</td>
    <td><input type='text' name='y3'/>年</td>
    <td><input type='text' name='s3'/>金额</td>
    </tr>
    <tr>
    <td><input type='text' name='m4'/>月</td>
    <td><input type='text' name='d4'/>日</td>
    <td><input type='text' name='y4'/>年</td>
    <td><input type='text' name='s4'/>金额</td>
    </tr>
    <tr>
    <td><input type='text' name='m5'/>月</td>
    <td><input type='text' name='d5'/>日</td>
    <td><input type='text' name='y5'/>年</td>
    <td><input type='text' name='s5'/>金额</td>
    </tr>
    <tr>
    <td><input type='text' name='m6'/>月</td>
    <td><input type='text' name='d6'/>日</td>
    <td><input type='text' name='y6'/>年</td>
    <td><input type='text' name='s6'/>金额</td>
    </tr>
    <tr>
    <td><input type='text' name='m7'/>月</td>
    <td><input type='text' name='d7'/>日</td>
    <td><input type='text' name='y7'/>年</td>
    <td><input type='text' name='s7'/>金额</td>
    </tr>
    <tr>
    <td><input type='text' name='m8'/>月</td>
    <td><input type='text' name='d8'/>日</td>
    <td><input type='text' name='y8'/>年</td>
    <td><input type='text' name='s8'/>金额</td>
    </tr>
    <tr>
    <td><input type='text' name='m9'/>月</td>
    <td><input type='text' name='d9'/>日</td>
    <td><input type='text' name='y9'/>年</td>
    <td><input type='text' name='s9'/>金额</td>
    </tr>
    <tr>
    <td colspan='3'></td>
    <td><input type='text' name='sum'/>总金额</td>
    </tr></table>
    </form>
    </body>
      

  2.   

    hookee你好!非常感谢你这么详细的回复!我运行了代码。看到一些效果。离成功不远了!第一行的日期默认要是当前日期,下面的都是下个月,这里是对的。
    但是需要一个onKeyUp事件,如果用户修改了第一期,那从第二期的时间就自动更改。如果是修改第二期,那从第三期到第十期的就自动更改。这些框框比较多,用户肯定用Tab键跳下一个,能支持吗?复杂了一些。再次感谢!
      

  3.   

    <script>
    var f;function init(){
    f = document.form1;
    var dt = new Date();
    var s = "";
    var m = dt.getMonth()+1;
    var y = dt.getFullYear();
    var d = dt.getDate();
    var lastDay;
    lastDay = getLastDay(m,y);
    f.m0.value = m;
    f.y0.value = y;
    f.d0.value = d;load(0);
    getSum();
    f.m0.focus();
    }
    function load(n){
      var mm, obj;
      obj = eval("f.m"+n);
      obj.index = n;
      obj.onblur=check;
      obj.onfocus=dofocus;
      var m = parseInt(obj.value);
      obj = eval("f.y"+n);
      obj.index = n;
      obj.onblur=check;
      obj.onfocus=dofocus;
      var y = parseInt(obj.value);
      obj = eval("f.d"+n);
      obj.index = n;
      obj.onblur=check;
      obj.onfocus=dofocus;
      var d = parseInt(obj.value);
      var dt = new Date(y,m-1,d);
      var lastDay;
      lastDay = getLastDay(m,y);  for(var i=n+1;i<10;i++){
      mm = m + i-n;
      if(mm<=12){
       obj = eval("f.m"+i);
        obj.value = mm;
        obj.index = i;
        obj.onblur=check;
        obj.onfocus=dofocus;
        obj = eval("f.d"+i);
        if(getLastDay(mm,y)<lastDay && d==lastDay) obj.value = getLastDay(mm,y);
        else obj.value = d;
        obj.index = i;
        obj.onblur=check;
        obj.onfocus=dofocus;
        obj = eval("f.y"+i);
        obj.value = y;
        obj.index = i;
        obj.onblur=check;
        obj.onfocus=dofocus;
        obj = eval("f.s"+i);
        obj.value = 0;
        obj.onblur=getSum;
      }
      else{
        obj = eval("f.m"+i);
        obj.value = "";
        obj.onblur=null;
        obj.onfocus=null;
        obj = eval("f.y"+i);
        obj.value = "";
        obj.onblur=null;
        obj.onfocus=null;
        obj = eval("f.d"+i);
        obj.value = "";
        obj.onblur=null;
        obj.onfocus=null;
        obj = eval("f.s"+i);
        obj.value = 0;
      }
      }
    }function getLastDay(pm,py){
      pm = parseInt(pm);
      py = parseInt(py);
      var dt2 = new Date(py,pm,1-1);
      return dt2.getDate();
    }function getSum(){
      var sum = 0;
      for(var i=0;i<10;i++){
       obj = eval("f.s"+i);
        if(obj.value=="" || isNaN(obj.value)) obj.value = 0;
        sum += parseFloat(obj.value);
      }
      f.sum.value = sum;
    }
    function dofocus(){
      var obj = event.srcElement;
      window.val = obj.value; 
    }
    function check(){
    var obj = event.srcElement;
    if(isNaN(obj.value)){alert("该字段不是数字!");obj.focus();return false;}
    var index = obj.index;
    var om = eval("f.m" + index);
    var oy = eval("f.y" + index);
    var od = eval("f.d" + index);
        var cm  = parseInt(om.value)-1;
        var cd  = parseInt(od.value);
        var cy  = parseInt(oy.value);
        var cdt = new Date(cy,cm, cd);
        if(cdt.getFullYear()!= cy || cdt.getMonth() != cm || cdt.getDate() != cd){
          alert("日期无效!");obj.focus();return false;
        }
        for(var i=0;i<index;i++){
          var onm = eval("f.m" + i);
      var ony = eval("f.y" + i);
      var ond = eval("f.d" + i);
          var nm = parseInt(onm.value)-1;
      var ny = parseInt(ony.value);
      var nd = parseInt(ond.value);
      var ndt = new Date(ny,nm, nd);
      if(ndt.getTime()>cdt.getTime()){
       alert("日期小于前面的日期!");obj.focus();return false;
      }
        }
    /*
        for(var i=index+1;i<10;i++){
          var onm = eval("f.m" + i);
      var ony = eval("f.y" + i);
      var ond = eval("f.d" + i);
          if(onm.value != "" && ony.value != "" && ond.value!= ""){
            var nm = parseInt(onm.value)-1;
        var ny = parseInt(ony.value);
        var nd = parseInt(ond.value);
        var ndt = new Date(ny,nm, nd);
        if(ndt.getTime()<cdt.getTime()){
         alert("日期大于后面的日期!");obj.focus();return false;
        }
      }
        }
    */
        if(window.val != obj.value) load(index);
    }
    function myclick(dom, path){
    var s = dom + path;
    location.href=s;
    }
    </script><body onload="init();">
    <form name="form1">
    <table>
    <tr>
    <td><input type='text' name='m0' tabIndex='1'/>月</td>
    <td><input type='text' name='d0' tabIndex='2'/>日</td>
    <td><input type='text' name='y0' tabIndex='3'/>年</td>
    <td><input type='text' name='s0' tabIndex='4'/>金额</td>
    </tr>
    <tr>
    <td><input type='text' name='m1' tabIndex='5'/>月</td>
    <td><input type='text' name='d1' tabIndex='6'/>日</td>
    <td><input type='text' name='y1' tabIndex='7'/>年</td>
    <td><input type='text' name='s1' tabIndex='8'/>金额</td>
    </tr>
    <tr>
    <td><input type='text' name='m2' tabIndex='9'/>月</td>
    <td><input type='text' name='d2' tabIndex='10'/>日</td>
    <td><input type='text' name='y2' tabIndex='11'/>年</td>
    <td><input type='text' name='s2' tabIndex='12'/>金额</td>
    </tr>
    <tr>
    <td><input type='text' name='m3' tabIndex='13'/>月</td>
    <td><input type='text' name='d3' tabIndex='14'/>日</td>
    <td><input type='text' name='y3' tabIndex='15'/>年</td>
    <td><input type='text' name='s3' tabIndex='16'/>金额</td>
    </tr>
    <tr>
    <td><input type='text' name='m4' tabIndex='17'/>月</td>
    <td><input type='text' name='d4' tabIndex='18'/>日</td>
    <td><input type='text' name='y4' tabIndex='19'/>年</td>
    <td><input type='text' name='s4' tabIndex='20'/>金额</td>
    </tr>
    <tr>
    <td><input type='text' name='m5' tabIndex='21'/>月</td>
    <td><input type='text' name='d5' tabIndex='22'/>日</td>
    <td><input type='text' name='y5' tabIndex='23'/>年</td>
    <td><input type='text' name='s5' tabIndex='24'/>金额</td>
    </tr>
    <tr>
    <td><input type='text' name='m6' tabIndex='25'/>月</td>
    <td><input type='text' name='d6' tabIndex='26'/>日</td>
    <td><input type='text' name='y6' tabIndex='27'/>年</td>
    <td><input type='text' name='s6' tabIndex='28'/>金额</td>
    </tr>
    <tr>
    <td><input type='text' name='m7' tabIndex='29'/>月</td>
    <td><input type='text' name='d7' tabIndex='30'/>日</td>
    <td><input type='text' name='y7' tabIndex='31'/>年</td>
    <td><input type='text' name='s7' tabIndex='32'/>金额</td>
    </tr>
    <tr>
    <td><input type='text' name='m8' tabIndex='33'/>月</td>
    <td><input type='text' name='d8' tabIndex='34'/>日</td>
    <td><input type='text' name='y8' tabIndex='35'/>年</td>
    <td><input type='text' name='s8' tabIndex='36'/>金额</td>
    </tr>
    <tr>
    <td><input type='text' name='m9' tabIndex='37'/>月</td>
    <td><input type='text' name='d9' tabIndex='38'/>日</td>
    <td><input type='text' name='y9' tabIndex='39'/>年</td>
    <td><input type='text' name='s9' tabIndex='40'/>金额</td>
    </tr>
    <tr>
    <td colspan='3'></td>
    <td><input type='text' name='sum' tabIndex='41'/>总金额</td>
    </tr></table>
    </form>
    </body>
      

  4.   

    <script>
    var f;function init(){
    f = document.form1;
    var dt = new Date();
    var s = "";
    var m = dt.getMonth()+1;
    var y = dt.getFullYear();
    var d = dt.getDate();
    var lastDay;
    lastDay = getLastDay(m,y);
    f.m0.value = m;
    f.y0.value = y;
    f.d0.value = d;load(0);
    getSum();
    f.m0.focus();
    }
    function load(n){
      var mm, obj;
      obj = eval("f.m"+n);
      obj.index = n;
      obj.onblur=check;
      obj.onfocus=dofocus;
      var m = parseInt(obj.value);
      obj = eval("f.y"+n);
      obj.index = n;
      obj.onblur=check;
      obj.onfocus=dofocus;
      var y = parseInt(obj.value);
      obj = eval("f.d"+n);
      obj.index = n;
      obj.onblur=check;
      obj.onfocus=dofocus;
      var d = parseInt(obj.value);
      var dt;
      var lastDay;
      lastDay = getLastDay(m,y);  for(var i=n+1;i<10;i++){
        mm = m + i-n;
        dt = new Date(y,mm-1,d);
        var mmm = dt.getMonth()+1;
        var yy = dt.getFullYear();
       obj = eval("f.m"+i);
        obj.value = mmm;
        obj.index = i;
        obj.onblur=check;
        obj.onfocus=dofocus;
        obj = eval("f.d"+i);
        if(getLastDay(mmm,yy)<lastDay && d==lastDay) obj.value = getLastDay(mmm,yy);
        else obj.value = d;
        obj.index = i;
        obj.onblur=check;
        obj.onfocus=dofocus;
        obj = eval("f.y"+i);
        obj.value = yy;
        obj.index = i;
        obj.onblur=check;
        obj.onfocus=dofocus;
        obj = eval("f.s"+i);
        obj.value = 0;
        obj.onblur=getSum;
      }
    }function getLastDay(pm,py){
      pm = parseInt(pm);
      py = parseInt(py);
      var dt2 = new Date(py,pm,1-1);
      return dt2.getDate();
    }function getSum(){
      var sum = 0;
      for(var i=0;i<10;i++){
       obj = eval("f.s"+i);
        if(obj.value=="" || isNaN(obj.value)) obj.value = 0;
        sum += parseFloat(obj.value);
      }
      f.sum.value = sum;
    }
    function dofocus(){
      var obj = event.srcElement;
      window.val = obj.value; 
    }
    function check(){
    var obj = event.srcElement;
    if(isNaN(obj.value)){alert("该字段不是数字!");obj.focus();return false;}
    var index = obj.index;
    var om = eval("f.m" + index);
    var oy = eval("f.y" + index);
    var od = eval("f.d" + index);
        var cm  = parseInt(om.value)-1;
        var cd  = parseInt(od.value);
        var cy  = parseInt(oy.value);
        var cdt = new Date(cy,cm, cd);
        if(cdt.getFullYear()!= cy || cdt.getMonth() != cm || cdt.getDate() != cd){
          alert("日期无效!");obj.focus();return false;
        }
        for(var i=0;i<index;i++){
          var onm = eval("f.m" + i);
      var ony = eval("f.y" + i);
      var ond = eval("f.d" + i);
          var nm = parseInt(onm.value)-1;
      var ny = parseInt(ony.value);
      var nd = parseInt(ond.value);
      var ndt = new Date(ny,nm, nd);
      if(ndt.getTime()>cdt.getTime()){
       alert("日期小于前面的日期!");obj.focus();return false;
      }
        }
    /*
        for(var i=index+1;i<10;i++){
          var onm = eval("f.m" + i);
      var ony = eval("f.y" + i);
      var ond = eval("f.d" + i);
          if(onm.value != "" && ony.value != "" && ond.value!= ""){
            var nm = parseInt(onm.value)-1;
        var ny = parseInt(ony.value);
        var nd = parseInt(ond.value);
        var ndt = new Date(ny,nm, nd);
        if(ndt.getTime()<cdt.getTime()){
         alert("日期大于后面的日期!");obj.focus();return false;
        }
      }
        }
    */
        if(window.val != obj.value) load(index);
    }
    function myclick(dom, path){
    var s = dom + path;
    location.href=s;
    }
    </script><body onload="init();">
    <form name="form1">
    <table>
    <tr>
    <td><input type='text' name='m0' tabIndex='1'/>月</td>
    <td><input type='text' name='d0' tabIndex='2'/>日</td>
    <td><input type='text' name='y0' tabIndex='3'/>年</td>
    <td><input type='text' name='s0' tabIndex='4'/>金额</td>
    </tr>
    <tr>
    <td><input type='text' name='m1' tabIndex='5'/>月</td>
    <td><input type='text' name='d1' tabIndex='6'/>日</td>
    <td><input type='text' name='y1' tabIndex='7'/>年</td>
    <td><input type='text' name='s1' tabIndex='8'/>金额</td>
    </tr>
    <tr>
    <td><input type='text' name='m2' tabIndex='9'/>月</td>
    <td><input type='text' name='d2' tabIndex='10'/>日</td>
    <td><input type='text' name='y2' tabIndex='11'/>年</td>
    <td><input type='text' name='s2' tabIndex='12'/>金额</td>
    </tr>
    <tr>
    <td><input type='text' name='m3' tabIndex='13'/>月</td>
    <td><input type='text' name='d3' tabIndex='14'/>日</td>
    <td><input type='text' name='y3' tabIndex='15'/>年</td>
    <td><input type='text' name='s3' tabIndex='16'/>金额</td>
    </tr>
    <tr>
    <td><input type='text' name='m4' tabIndex='17'/>月</td>
    <td><input type='text' name='d4' tabIndex='18'/>日</td>
    <td><input type='text' name='y4' tabIndex='19'/>年</td>
    <td><input type='text' name='s4' tabIndex='20'/>金额</td>
    </tr>
    <tr>
    <td><input type='text' name='m5' tabIndex='21'/>月</td>
    <td><input type='text' name='d5' tabIndex='22'/>日</td>
    <td><input type='text' name='y5' tabIndex='23'/>年</td>
    <td><input type='text' name='s5' tabIndex='24'/>金额</td>
    </tr>
    <tr>
    <td><input type='text' name='m6' tabIndex='25'/>月</td>
    <td><input type='text' name='d6' tabIndex='26'/>日</td>
    <td><input type='text' name='y6' tabIndex='27'/>年</td>
    <td><input type='text' name='s6' tabIndex='28'/>金额</td>
    </tr>
    <tr>
    <td><input type='text' name='m7' tabIndex='29'/>月</td>
    <td><input type='text' name='d7' tabIndex='30'/>日</td>
    <td><input type='text' name='y7' tabIndex='31'/>年</td>
    <td><input type='text' name='s7' tabIndex='32'/>金额</td>
    </tr>
    <tr>
    <td><input type='text' name='m8' tabIndex='33'/>月</td>
    <td><input type='text' name='d8' tabIndex='34'/>日</td>
    <td><input type='text' name='y8' tabIndex='35'/>年</td>
    <td><input type='text' name='s8' tabIndex='36'/>金额</td>
    </tr>
    <tr>
    <td><input type='text' name='m9' tabIndex='37'/>月</td>
    <td><input type='text' name='d9' tabIndex='38'/>日</td>
    <td><input type='text' name='y9' tabIndex='39'/>年</td>
    <td><input type='text' name='s9' tabIndex='40'/>金额</td>
    </tr>
    <tr>
    <td colspan='3'></td>
    <td><input type='text' name='sum' tabIndex='41'/>总金额</td>
    </tr></table>
    </form>
    </body>
      

  5.   

    <script>
    var f;function init(){
    f = document.form1;
    var dt = new Date();
    var s = "";
    var m = dt.getMonth()+1;
    var y = dt.getFullYear();
    var d = dt.getDate();
    var lastDay;
    lastDay = getLastDay(m,y);
    f.m0.value = m;
    f.y0.value = y;
    f.d0.value = d;load(0);
    getSum();
    f.m0.focus();
    }
    function load(n){
      var mm, obj;
      obj = eval("f.m"+n);
      obj.index = n;
      obj.onblur=check;
      obj.onfocus=dofocus;
      var m = parseInt(obj.value);
      obj = eval("f.y"+n);
      obj.index = n;
      obj.onblur=check;
      obj.onfocus=dofocus;
      var y = parseInt(obj.value);
      obj = eval("f.d"+n);
      obj.index = n;
      obj.onblur=check;
      obj.onfocus=dofocus;
      var d = parseInt(obj.value);
      var dt;
      var lastDay;
      lastDay = getLastDay(m,y);  for(var i=n+1;i<10;i++){
        mm = m + i-n;
        var dd;
        dt = new Date(y,mm-1,d);
        if(dt.getMonth()!=(mm-1) || dt.getFullYear()!=y) dd = getLastDay(mm,y);
        else dd = d;
        dt = new Date(y,mm-1,dd);
        var mmm = dt.getMonth()+1;
        var yy = dt.getFullYear();
       obj = eval("f.m"+i);
        obj.value = mmm;
        obj.index = i;
        obj.onblur=check;
        obj.onfocus=dofocus;
        obj = eval("f.d"+i);
        obj.value = dd;
        obj.index = i;
        obj.onblur=check;
        obj.onfocus=dofocus;
        obj = eval("f.y"+i);
        obj.value = yy;
        obj.index = i;
        obj.onblur=check;
        obj.onfocus=dofocus;
        obj = eval("f.s"+i);
        obj.value = 0;
        obj.onblur=getSum;
      }
    }function getLastDay(pm,py){
      pm = parseInt(pm);
      py = parseInt(py);
      var dt2 = new Date(py,pm,1-1);
      return dt2.getDate();
    }function getSum(){
      var sum = 0;
      for(var i=0;i<10;i++){
       obj = eval("f.s"+i);
        if(obj.value=="" || isNaN(obj.value)) obj.value = 0;
        sum += parseFloat(obj.value);
      }
      f.sum.value = sum;
    }
    function dofocus(){
      var obj = event.srcElement;
      window.val = obj.value; 
    }
    function check(){
    var obj = event.srcElement;
    if(isNaN(obj.value)){alert("该字段不是数字!");obj.focus();return false;}
    var index = obj.index;
    var om = eval("f.m" + index);
    var oy = eval("f.y" + index);
    var od = eval("f.d" + index);
        var cm  = parseInt(om.value)-1;
        var cd  = parseInt(od.value);
        var cy  = parseInt(oy.value);
        var cdt = new Date(cy,cm, cd);
        if(cdt.getFullYear()!= cy || cdt.getMonth() != cm || cdt.getDate() != cd){
          alert("日期无效!");obj.focus();return false;
        }
        for(var i=0;i<index;i++){
          var onm = eval("f.m" + i);
      var ony = eval("f.y" + i);
      var ond = eval("f.d" + i);
          var nm = parseInt(onm.value)-1;
      var ny = parseInt(ony.value);
      var nd = parseInt(ond.value);
      var ndt = new Date(ny,nm, nd);
      if(ndt.getTime()>cdt.getTime()){
       alert("日期小于前面的日期!");obj.focus();return false;
      }
        }
    /*
        for(var i=index+1;i<10;i++){
          var onm = eval("f.m" + i);
      var ony = eval("f.y" + i);
      var ond = eval("f.d" + i);
          if(onm.value != "" && ony.value != "" && ond.value!= ""){
            var nm = parseInt(onm.value)-1;
        var ny = parseInt(ony.value);
        var nd = parseInt(ond.value);
        var ndt = new Date(ny,nm, nd);
        if(ndt.getTime()<cdt.getTime()){
         alert("日期大于后面的日期!");obj.focus();return false;
        }
      }
        }
    */
        if(window.val != obj.value) load(index);
    }
    function myclick(dom, path){
    var s = dom + path;
    location.href=s;
    }
    </script><body onload="init();">
    <form name="form1">
    <table>
    <tr>
    <td><input type='text' name='m0' tabIndex='1'/>月</td>
    <td><input type='text' name='d0' tabIndex='2'/>日</td>
    <td><input type='text' name='y0' tabIndex='3'/>年</td>
    <td><input type='text' name='s0' tabIndex='4'/>金额</td>
    </tr>
    <tr>
    <td><input type='text' name='m1' tabIndex='5'/>月</td>
    <td><input type='text' name='d1' tabIndex='6'/>日</td>
    <td><input type='text' name='y1' tabIndex='7'/>年</td>
    <td><input type='text' name='s1' tabIndex='8'/>金额</td>
    </tr>
    <tr>
    <td><input type='text' name='m2' tabIndex='9'/>月</td>
    <td><input type='text' name='d2' tabIndex='10'/>日</td>
    <td><input type='text' name='y2' tabIndex='11'/>年</td>
    <td><input type='text' name='s2' tabIndex='12'/>金额</td>
    </tr>
    <tr>
    <td><input type='text' name='m3' tabIndex='13'/>月</td>
    <td><input type='text' name='d3' tabIndex='14'/>日</td>
    <td><input type='text' name='y3' tabIndex='15'/>年</td>
    <td><input type='text' name='s3' tabIndex='16'/>金额</td>
    </tr>
    <tr>
    <td><input type='text' name='m4' tabIndex='17'/>月</td>
    <td><input type='text' name='d4' tabIndex='18'/>日</td>
    <td><input type='text' name='y4' tabIndex='19'/>年</td>
    <td><input type='text' name='s4' tabIndex='20'/>金额</td>
    </tr>
    <tr>
    <td><input type='text' name='m5' tabIndex='21'/>月</td>
    <td><input type='text' name='d5' tabIndex='22'/>日</td>
    <td><input type='text' name='y5' tabIndex='23'/>年</td>
    <td><input type='text' name='s5' tabIndex='24'/>金额</td>
    </tr>
    <tr>
    <td><input type='text' name='m6' tabIndex='25'/>月</td>
    <td><input type='text' name='d6' tabIndex='26'/>日</td>
    <td><input type='text' name='y6' tabIndex='27'/>年</td>
    <td><input type='text' name='s6' tabIndex='28'/>金额</td>
    </tr>
    <tr>
    <td><input type='text' name='m7' tabIndex='29'/>月</td>
    <td><input type='text' name='d7' tabIndex='30'/>日</td>
    <td><input type='text' name='y7' tabIndex='31'/>年</td>
    <td><input type='text' name='s7' tabIndex='32'/>金额</td>
    </tr>
    <tr>
    <td><input type='text' name='m8' tabIndex='33'/>月</td>
    <td><input type='text' name='d8' tabIndex='34'/>日</td>
    <td><input type='text' name='y8' tabIndex='35'/>年</td>
    <td><input type='text' name='s8' tabIndex='36'/>金额</td>
    </tr>
    <tr>
    <td><input type='text' name='m9' tabIndex='37'/>月</td>
    <td><input type='text' name='d9' tabIndex='38'/>日</td>
    <td><input type='text' name='y9' tabIndex='39'/>年</td>
    <td><input type='text' name='s9' tabIndex='40'/>金额</td>
    </tr>
    <tr>
    <td colspan='3'></td>
    <td><input type='text' name='sum' tabIndex='41'/>总金额</td>
    </tr></table>
    </form>
    </body>
      

  6.   

    修改如下帖,至于添加行 修改最前面的参数total,然后 在HTML代码中加入所需的行代码,并且修改名称顺序,比如total=11,那么在
    <tr>
    <td><input type='text' name='m9' tabIndex='37'/>月</td>
    <td><input type='text' name='d9' tabIndex='38'/>日</td>
    <td><input type='text' name='y9' tabIndex='39'/>年</td>
    <td><input type='text' name='s9' tabIndex='40'/>金额</td>
    </tr>
    后面加上
    <tr>
    <td><input type='text' name='m10' tabIndex='41'/>月</td>
    <td><input type='text' name='d10' tabIndex='42'/>日</td>
    <td><input type='text' name='y10' tabIndex='43'/>年</td>
    <td><input type='text' name='s10' tabIndex='44'/>金额</td>
    </tr>
    注意,name属性 里面的数字最后是total-1,即10。tabIndex也相应顺序添加,看一下规律就明白了
      

  7.   

    <script>
    var f;
    var total = 10;function init(){
    f = document.form1;
    var dt = new Date();
    var s = "";
    var m = dt.getMonth()+1;
    var y = dt.getFullYear();
    var d = dt.getDate();
    var lastDay;
    lastDay = getLastDay(m,y);
    f.m0.value = m;
    f.y0.value = y;
    f.d0.value = d;load(0);
    getSum();
    f.m0.focus();
    }
    function load(n){
      var mm, obj;
      obj = eval("f.m"+n);
      obj.index = n;
      obj.onblur=check;
      obj.onfocus=dofocus;
      var m = parseInt(obj.value);
      obj = eval("f.y"+n);
      obj.index = n;
      obj.onblur=check;
      obj.onfocus=dofocus;
      var y = parseInt(obj.value);
      obj = eval("f.d"+n);
      obj.index = n;
      obj.onblur=check;
      obj.onfocus=dofocus;
      var d = parseInt(obj.value);
      var dt;
      var lastDay;
      lastDay = getLastDay(m,y);  for(var i=n+1;i<total;i++){
        mm = m + i-n;
        var dd;
        dt = new Date(y,mm-1,d);
        if(d == dt.getDate()) dd = d;
        else dd = getLastDay(mm,y);
        dt = new Date(y,mm-1,dd);
        var mmm = dt.getMonth()+1;
        var yy = dt.getFullYear();
       obj = eval("f.m"+i);
        obj.value = mmm;
        obj.index = i;
        obj.onblur=check;
        obj.onfocus=dofocus;
        obj = eval("f.d"+i);
        obj.value = dd;
        obj.index = i;
        obj.onblur=check;
        obj.onfocus=dofocus;
        obj = eval("f.y"+i);
        obj.value = yy;
        obj.index = i;
        obj.onblur=check;
        obj.onfocus=dofocus;
        obj = eval("f.s"+i);
        obj.value = 0;
        obj.onblur=getSum;
      }
    }function getLastDay(pm,py){
      pm = parseInt(pm);
      py = parseInt(py);
      var dt2 = new Date(py,pm,1-1);
      return dt2.getDate();
    }function getSum(){
      var sum = 0;
      for(var i=0;i<total;i++){
       obj = eval("f.s"+i);
        if(obj.value=="" || isNaN(obj.value)) obj.value = 0;
        sum += parseFloat(obj.value);
      }
      f.sum.value = sum;
    }
    function dofocus(){
      var obj = event.srcElement;
      window.val = obj.value; 
    }
    function check(){
    var obj = event.srcElement;
    if(isNaN(obj.value)){alert("该字段不是数字!");obj.focus();return false;}
    var index = obj.index;
    var om = eval("f.m" + index);
    var oy = eval("f.y" + index);
    var od = eval("f.d" + index);
        var cm  = parseInt(om.value)-1;
        var cd  = parseInt(od.value);
        var cy  = parseInt(oy.value);
        var cdt = new Date(cy,cm, cd);
        if(cdt.getFullYear()!= cy || cdt.getMonth() != cm || cdt.getDate() != cd){
          alert("日期无效!");obj.focus();return false;
        }
        for(var i=0;i<index;i++){
          var onm = eval("f.m" + i);
      var ony = eval("f.y" + i);
      var ond = eval("f.d" + i);
          var nm = parseInt(onm.value)-1;
      var ny = parseInt(ony.value);
      var nd = parseInt(ond.value);
      var ndt = new Date(ny,nm, nd);
      if(ndt.getTime()>cdt.getTime()){
       alert("日期小于前面的日期!");obj.focus();return false;
      }
        }
    /*
        for(var i=index+1;i<total;i++){
          var onm = eval("f.m" + i);
      var ony = eval("f.y" + i);
      var ond = eval("f.d" + i);
          if(onm.value != "" && ony.value != "" && ond.value!= ""){
            var nm = parseInt(onm.value)-1;
        var ny = parseInt(ony.value);
        var nd = parseInt(ond.value);
        var ndt = new Date(ny,nm, nd);
        if(ndt.getTime()<cdt.getTime()){
         alert("日期大于后面的日期!");obj.focus();return false;
        }
      }
        }
    */
        if(window.val != obj.value) load(index);
    }
    function myclick(dom, path){
    var s = dom + path;
    location.href=s;
    }
    </script><body onload="init();">
    <form name="form1">
    <table>
    <tr>
    <td><input type='text' name='m0' tabIndex='1'/>月</td>
    <td><input type='text' name='d0' tabIndex='2'/>日</td>
    <td><input type='text' name='y0' tabIndex='3'/>年</td>
    <td><input type='text' name='s0' tabIndex='4'/>金额</td>
    </tr>
    <tr>
    <td><input type='text' name='m1' tabIndex='5'/>月</td>
    <td><input type='text' name='d1' tabIndex='6'/>日</td>
    <td><input type='text' name='y1' tabIndex='7'/>年</td>
    <td><input type='text' name='s1' tabIndex='8'/>金额</td>
    </tr>
    <tr>
    <td><input type='text' name='m2' tabIndex='9'/>月</td>
    <td><input type='text' name='d2' tabIndex='10'/>日</td>
    <td><input type='text' name='y2' tabIndex='11'/>年</td>
    <td><input type='text' name='s2' tabIndex='12'/>金额</td>
    </tr>
    <tr>
    <td><input type='text' name='m3' tabIndex='13'/>月</td>
    <td><input type='text' name='d3' tabIndex='14'/>日</td>
    <td><input type='text' name='y3' tabIndex='15'/>年</td>
    <td><input type='text' name='s3' tabIndex='16'/>金额</td>
    </tr>
    <tr>
    <td><input type='text' name='m4' tabIndex='17'/>月</td>
    <td><input type='text' name='d4' tabIndex='18'/>日</td>
    <td><input type='text' name='y4' tabIndex='19'/>年</td>
    <td><input type='text' name='s4' tabIndex='20'/>金额</td>
    </tr>
    <tr>
    <td><input type='text' name='m5' tabIndex='21'/>月</td>
    <td><input type='text' name='d5' tabIndex='22'/>日</td>
    <td><input type='text' name='y5' tabIndex='23'/>年</td>
    <td><input type='text' name='s5' tabIndex='24'/>金额</td>
    </tr>
    <tr>
    <td><input type='text' name='m6' tabIndex='25'/>月</td>
    <td><input type='text' name='d6' tabIndex='26'/>日</td>
    <td><input type='text' name='y6' tabIndex='27'/>年</td>
    <td><input type='text' name='s6' tabIndex='28'/>金额</td>
    </tr>
    <tr>
    <td><input type='text' name='m7' tabIndex='29'/>月</td>
    <td><input type='text' name='d7' tabIndex='30'/>日</td>
    <td><input type='text' name='y7' tabIndex='31'/>年</td>
    <td><input type='text' name='s7' tabIndex='32'/>金额</td>
    </tr>
    <tr>
    <td><input type='text' name='m8' tabIndex='33'/>月</td>
    <td><input type='text' name='d8' tabIndex='34'/>日</td>
    <td><input type='text' name='y8' tabIndex='35'/>年</td>
    <td><input type='text' name='s8' tabIndex='36'/>金额</td>
    </tr>
    <tr>
    <td><input type='text' name='m9' tabIndex='37'/>月</td>
    <td><input type='text' name='d9' tabIndex='38'/>日</td>
    <td><input type='text' name='y9' tabIndex='39'/>年</td>
    <td><input type='text' name='s9' tabIndex='40'/>金额</td>
    </tr>
    <tr>
    <td colspan='3'></td>
    <td><input type='text' name='sum' tabIndex='41'/>总金额</td>
    </tr></table>
    </form>
    </body>