多文本框关联日期的问题(帮帮忙) hookee你好!固定有十行给他填写。不会超过。自动生成在文本框中,如果不出意外,他们不需要修改。只需要输入第一行的日期和其他行的金额即可。谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 <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> hookee你好!非常感谢你这么详细的回复!我运行了代码。看到一些效果。离成功不远了!第一行的日期默认要是当前日期,下面的都是下个月,这里是对的。但是需要一个onKeyUp事件,如果用户修改了第一期,那从第二期的时间就自动更改。如果是修改第二期,那从第三期到第十期的就自动更改。这些框框比较多,用户肯定用Tab键跳下一个,能支持吗?复杂了一些。再次感谢! <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> <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> <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> 修改如下帖,至于添加行 修改最前面的参数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也相应顺序添加,看一下规律就明白了 <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> 高手们,怎样在不修改页面的情况下让所有页面引用同一个JS? 还有两个JS麻烦你一下 Flash交替出现的困惑! 如何通过javascript选定td中的文本? 利用div实现同一页面显示不同内容的问题!希望大家帮忙! 学习DTREE 遇到的一点疑问 谁能做出这种效果,用CSS估计是做不出来,只能看JS行不行了!!! Javascript中如何操作数据库? 请问下,为什么我取不到值? 网页中有没有tab标签选项卡控件,不同的选项卡对应不同的URL 在操作父页面的时候,如何自动关闭子页面 如何读取option属性值?
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>
但是需要一个onKeyUp事件,如果用户修改了第一期,那从第二期的时间就自动更改。如果是修改第二期,那从第三期到第十期的就自动更改。这些框框比较多,用户肯定用Tab键跳下一个,能支持吗?复杂了一些。再次感谢!
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>
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>
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>
<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也相应顺序添加,看一下规律就明白了
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>