<input size=5 onkeydown=if(value.length==3)event.keyCode=9>
<input size=5 onkeydown=if(value.length==3)event.keyCode=9>
<input size=5 onkeydown=if(value.length==3)event.keyCode=9>

解决方案 »

  1.   

    不行啊,
    如果text1键入123,但是当输入4的时候却跳到text2,不过4却不在text2出现。
    还有,当所有text全部添满的时候就不能修改text了,当键入是自动就跳到下一个text了。
      

  2.   

    <input name=i1 size=5 onkeyup='if(value.length>=3)i2.select()'>
    <input name=i2 size=5 onkeyup='if(value.length>=3)i3.select()'>
    <input name=i3 size=5>
      

  3.   

    下面的代码实基本上现了cdkey的功能,目前一个未解决的问题是,当用户选择了文本框中的文字后不能直接对其修改,必须先按delete键或backspace键再输入,解决该问题的关键是:怎样判断文本框中的文字处于选中状态!?
    <input name=key size=5 onkeydown=keyControl(key,0,3)>
    <input name=key size=5 onkeydown=keyControl(key,1,3)>
    <input name=key size=5 onkeydown=keyControl(key,2,3)>
    <script language=jscript>
    function keyControl(obj,i,size)
    {
    if(event.keyCode==9)return;
    if(obj[i].value.length==size&&!(event.keyCode==8||event.keyCode==46||event.keyCode==37||event.keyCode==39))
    {
    if(i==obj.length-1)event.returnValue=false;
    else

    obj[i+1].focus();
    var rng=document.selection.createRange();
    rng.moveStart("character", obj[i+1].value.length);
    rng.select();
    event.returnValue= false;
    }
    }
    }
    </script>
      

  4.   

    qiushuiwuhen(秋水无恨)第一次提供方法 的在输入时有问题,
    不会自动跳转,而且数据输入完成后不能修改;第二次提供的
    方法,如果三个窗格中的数据输入完成,则在用TAB键选择时
    会出现问题;
    freefalcon(心宇)的问题和qiushuiwuhen(秋水无恨)第一次提
    供的方法类似,不会自动跳转,不过只要把其中的onkeydown
    改为:onkeyup就可以了。不过当前一个窗格数据输入完成,
    如果按SHIFT+TAB键修改,则会出发onkeyup事件,光标会自动
    跳转,所以只有用鼠标进行操作。
    不过这已经是最好的了,偶也没有更好的方法可想 。
      

  5.   

    不好意思,少写了一个条件,下面的代码就可以了
    <input name=key size=5 onkeydown=keyControl(key,0,3)>
    <input name=key size=5 onkeydown=keyControl(key,1,3)>
    <input name=key size=5 onkeydown=keyControl(key,2,3)>
    <script language=jscript>
    function keyControl(obj,i,size)
    {
    if(event.keyCode==9)return;
    if(obj[i].value.length==size&&!(event.keyCode==8||event.keyCode==46||event.keyCode==37||event.keyCode==39))
    {
    if(i==obj.length-1)event.returnValue=false;
    else

    obj[i+1].focus();
    var rng=document.selection.createRange();
    rng.moveStart("character", obj[i+1].value.length);
    rng.select();
    if(obj[i+1].value.length>=size)event.returnValue= false;
    }
    }
    }
    </script>
      

  6.   

    最新版本,所有问题搞定
    <input name=key size=5 onkeydown=keyControl(key,0,3)>
    <input name=key size=5 onkeydown=keyControl(key,1,3)>
    <input name=key size=5 onkeydown=keyControl(key,2,3)>
    <script language=jscript>
    function keyControl(obj,i,size)
    {
    if(event.keyCode==9||document.selection.createRange().text!="")return;
    if(obj[i].value.length==size&&!(event.keyCode==8||event.keyCode==46||event.keyCode==37||event.keyCode==39))
    {
    if(i==obj.length-1)event.returnValue=false;
    else

    obj[i+1].focus();
    var rng=document.selection.createRange();
    rng.moveStart("character", obj[i+1].value.length);
    rng.select();
    if(obj[i+1].value.length>=size)event.returnValue= false;
    }
    }
    }
    </script>
      

  7.   

    还有问题啊,
    如果按home还是跳到后面那个text里面。
      

  8.   

    像home,end这样的键,我都给屏蔽掉了,如果你觉得哪些键有用自己在取消屏蔽就行了,其实还有一个问题,那就是用户可以通过Ctrl+V直接将过长的文本粘贴进去,解决思路一:屏蔽Ctrl+V,思路二:过滤剪贴版中的字符