假设有表单如下,我要做一个给数值分组的功能,表单的输入全部是正整数,输入start、num、per,然后点击按钮,将该组"per"数量个结果显示在msg里面,数字之间用逗号或者斜杠分开。例如各表单输入分别为:start=1234,num=50,per=3,点击“开始分组”,“显示结果”里面显示出“1234,1235,1236”这3个结果(per为几,就显示几个);
点击“下一组”,“显示结果”清空,然后显示出“1237,1238,1239”这3个结果(per为几,就显示几个);
以此类推,直到最后一组显示"1282,1283",不足3个则有几个显示几个(小于per的,有几个就显示几个);。 请高手给出js代码,谢谢!---------------------------------------------------------------------------------------------------------html如下:输入起始<input type="text" name="start" size="5" maxlength="5" value="0"><br>
输入数量<input type="text" name="num" size="5" maxlength="5" value="1000"><br>
每组容量<input type="text" name="per" size="5" maxlength="5" value="50"><br>显示结果<textarea name="msg" cols="6" rows="25"></textarea><br>
<input value="开始分组"onclick="strat()"><br>
<input value="下一组" onclick="next()"><br>

解决方案 »

  1.   

    <script type="text/javascript"> 
    var cur,f ;
    function start1(){
        cur = parseInt(f.start.value,10);
    var s = "";
    var n = parseInt(f.per.value,10);
    var last = parseInt(f.start.value,10) + parseInt(f.num.value,10); for(var i=0;i<n;i++){
    if(cur<=last) {s += cur + ",";cur++;} }
    s = s.substr(0,s.length-1)+"\n";
    f.msg.value = s;
    }
    function next1(){
    var s = "";
    var n = parseInt(f.per.value,10);
    var last = parseInt(f.start.value,10) + parseInt(f.num.value,10); for(var i=0;i<n;i++){
    if(cur<=last) {s += cur + ",";cur++;} }
    s = s.substr(0,s.length-1)+"\n";
    f.msg.value = s;
    }
    window.onload=function(){
      f = document.forms[0];
    }
    </script> 
    <form>
    输入起始 <input type="text" name="start" size="5" maxlength="5" value="0"> <br> 
    输入数量 <input type="text" name="num" size="5" maxlength="5" value="1000"> <br> 
    每组容量 <input type="text" name="per" size="5" maxlength="5" value="50"> <br> 显示结果 <textarea name="msg" cols="6" rows="25"> </textarea> <br> 
    <input type="button" value="开始分组" onclick="start1()"> <br> 
    <input type="button" value="下一组" onclick="next1()"> <br> 
    </form>
      

  2.   

    改一下 : if(cur<last)<script type="text/javascript"> 
    var cur,f ;
    function start1(){
        cur = parseInt(f.start.value,10);
    var s = "";
    var n = parseInt(f.per.value,10);
    var last = parseInt(f.start.value,10) + parseInt(f.num.value,10); for(var i=0;i<n;i++){
    if(cur<last) {s += cur + ",";cur++;}
    }
    s = s.substr(0,s.length-1)+"\n";
    f.msg.value = s;
    }
    function next1(){
    var s = "";
    var n = parseInt(f.per.value,10);
    var last = parseInt(f.start.value,10) + parseInt(f.num.value,10); for(var i=0;i<n;i++){
    if(cur<last) {s += cur + ",";cur++;} }
    s = s.substr(0,s.length-1)+"\n";
    f.msg.value = s;
    }
    window.onload=function(){
      f = document.forms[0];
    }
    </script> 
    <form>
    输入起始 <input type="text" name="start" size="5" maxlength="5" value="0"> <br> 
    输入数量 <input type="text" name="num" size="5" maxlength="5" value="1000"> <br> 
    每组容量 <input type="text" name="per" size="5" maxlength="5" value="50"> <br> 显示结果 <textarea name="msg" cols="6" rows="25"> </textarea> <br> 
    <input type="button" value="开始分组" onclick="start1()"> <br> 
    <input type="button" value="下一组" onclick="next1()"> <br> 
    </form>
      

  3.   


    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 
    <HTML>
    <HEAD> 
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <title>
    测试
    </title>
    <script type="text/javascript">
    var b=0,e=0,num=0,per=0;
    var t='';
    window.onload=function(){
      b=document.getElementById("start").value;
      num=document.getElementById("num").value;
      per=document.getElementById("per").value;
    }
    function start(){
      e=b*1+num*1;
      for (var i=b;i<e;i++){
        t=t==''?i:t+((i-b)%3==0?'\n':',')+i;
      }
      document.getElementById("msg").value=t;
    }</script>
     
     
    </HEAD>
    <body>
    输入起始 <input type="text" id=start name="start" size="5" maxlength="5" value="0" onmouseup="b=this.value"> <br>
    输入数量 <input type="text" id=num name="num" size="5" maxlength="5" value="1000" onmouseup="num=this.value"> <br>
    每组容量 <input type="text" id=per name="per" size="5" maxlength="5" value="50"> <br>显示结果 <textarea id=msg name="msg" cols="16" rows="25"> </textarea> <br>
    <input value="开始分组"onclick="start()"> <br>
    <input value="下一组" onclick="next()"> <br> 
    </body>
    </HTML> 
      

  4.   

    不好意思,漏写了next(),看这个
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 
    <HTML>
    <HEAD> 
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <title>
    测试
    </title>
    <script type="text/javascript">
    var b=0,e=0,num=0,per=0;
    var t='';
    window.onload=function(){
      b=document.getElementById("start").value;
      num=document.getElementById("num").value;
      per=document.getElementById("per").value;
    }
    function start(){
      e=b*1+num*1;
      for (var i=b;i<e;i++){
        t=t==''?i:t+((i-b)%3==0?'\n':',')+i;
      }
      document.getElementById("msg").value=t;
    }function next(){
      var s=document.getElementById("msg").value;
      var a=s.split(",")
      t='';
      for (i=a.length-2;i<a.length;i++){
        t=t==''?a[i]:t+','+a[i]
      }
      document.getElementById("msg").value=t.replace("\n",",");  
    }
    </script> 
    </HEAD>
    <body>
    输入起始 <input type="text" id=start name="start" size="5" maxlength="5" value="0" onmouseup="b=this.value"> <br>
    输入数量 <input type="text" id=num name="num" size="5" maxlength="5" value="1000" onmouseup="num=this.value"> <br>
    每组容量 <input type="text" id=per name="per" size="5" maxlength="5" value="50"> <br>显示结果 <textarea id=msg name="msg" cols="16" rows="25"> </textarea> <br>
    <input value="开始分组"onclick="start()"> <br>
    <input value="下一组" onclick="next()"> <br> 
    </body>
    </HTML> 
      

  5.   


    <form name='a'>
    输入起始 <input type="text" name="sta" size="5" maxlength="5" value="100"> <br> 
    输入数量 <input type="text" name="num" size="5" maxlength="5" value="5"> <br> 
    每组容量 <input type="text" name="per" size="5" maxlength="5" value="10"> <br> 显示结果 <textarea name="msg" cols="40" rows="25"> </textarea> <br> 
    <input value="开始分组"onclick="myTeam.start()" name="staDo" type="button"> <br> 
    <input value="下一组" onclick="myTeam.next()" name="nextDo" type="button"> <br>
    </form>
    var myTeam = {
    sta:document.a.sta,
    num:document.a.num,
    per:document.a.per,
    msg:document.a.msg,
    staDo:document.a.staDo,
    nextDo:document.a.nextDo,
    arr:[],
    canNext:true,
    start:function(){
    myTeam.canNext = true;
    myTeam.msg.value="";
    myTeam.arr = [];
    for(var i=0;i<myTeam.num.value;i++){
    myTeam.arr.push(parseInt(myTeam.sta.value) + i);
    }
    myTeam.next();

    },
    next:function(){
    for(var i=0;i<myTeam.per.value;i++){
    if(!myTeam.canNext){
    return
    }
    else{
    if(myTeam.arr.length==0){
    myTeam.msg.value = myTeam.msg.value.slice(0,myTeam.msg.value.length-1);
    myTeam.canNext = false;
    return;
    }
    else{
    myTeam.msg.value += myTeam.arr.shift() + ",";
    }
    }
    }
    myTeam.msg.value = myTeam.msg.value.slice(0,myTeam.msg.value.length-1);
    myTeam.msg.value += "\n";
    }
    }不废话,直接给代码