1)在我的框架式页面(由4个子窗口组成)中有一系列TextBox控件;当我将光标放到第一个TextBox后按回车键,光标回跳到下一个TextBox中,直到最后一个TextBox; 但光标在最后一个TextBox里时按回车键后光标跳到其中的某一个子框架窗口中,而不能循环性地跳到第一个TextBox中;如何解决?(我为了逃避出现这种现象,TextBox的TabIndex属性值从1开始设置的,但还是被系统抓住了;我认为,因为那4个子框架也有由系统自动分配的TabIndex=0值,而无法修改其值或静止获取焦点,因此出现这种现象)我用的焦点切换代码:
<script language="javascript">
function keydown(){
  var dom=document.all;
  for(i=0;i<dom.length;i++)
  {
     if(dom[i].tagName=="INPUT"&&event.keyCode==13)
     {
if(dom[i].type.toLowerCase()=="text"&&dom[i].readOnly!=true)
   event.keyCode=9;
     }
  }
}
</script>2)当光标在最后一个TextBox中时按回车键执行数据提交或某种任务,如何实现?

解决方案 »

  1.   

    你可以用javascrip写tabindex是最后时,使光标跳到第一个就可以了
      

  2.   

    不要直接转换为Tab键,直接Textbox1.focurs()
      

  3.   

    to youjei(飞一龙.net):
       javascrip中没有tabindex属性怎么写呀
    --------------------------
    to sykpboy(小憩) :
      这又不是C#的win32应用程序,哪能用Textbox1.focurs()?
      

  4.   

    楼主要判断最后一个textbox要进行操作也不一定非用tabindex判断 你完全可以用id做判断啊
    把你的改变键盘操作的代码和判断id的部分结合起来就可以了
      

  5.   

    它的id不就是TextBoxN 吗,怎么用id做判断呢?可以详细点吗?谢谢!
      

  6.   

    给你一个!
    function GetFocus()
    {
       var al_keydown = window.event.srcElement;
    if (event.keyCode == 13 &&  al_keydown.id=="txOrder")
    {
    document.FltWiz.txCustomer.focus();
    }
    else if (event.keyCode == 13 &&  al_keydown.id=="txCustomer")
    {
    document.FltWiz.txPhone.focus();
    }
    else if (event.keyCode == 13 &&  al_keydown.id=="txPhone")
    {
    document.FltWiz.txSn.focus();
    }
    else if (event.keyCode == 13 &&  al_keydown.id=="txSn")
    {
    document.FltWiz.cmdQuery.focus();
    }}
      

  7.   

    to  tianjue0921(天珏):1)在 var al_keydown = window.event.srcElement;中的event没有srcElement,这是怎么来的?
    2)在 document.FltWiz.txCustomer.focus(); 中的FltWiz指的是什么? 谢谢。
      

  8.   

    这种情况需要自己写个循环
    var allInput;
    document.onkeyup=function(){
        var e = window.event.srcElement;
        if ((event.keyCode == 13) && (e.type=="input")){ //表示文本框获得焦点
            doNextInputFocus(e);   
        }    function doNextInputFocus(e){
           if(allInput ==undefined){ //获取所有的input控件
               allInput = document.getElementsByTagName("input");
           }
           if(e.id ==allInput[allInput.length-1].id){ //表示最后一个按钮
               allInput[0].focus();  //第一个input获得焦点
           }   
           else{
                event.keyCode ==9; //转换为Tab键,进行回车
           } 
        }
    }
      

  9.   

    to Bkoklam(koklam)这个过程你写在前台javascript脚本里,跟是不是win32程序无关。
    textbox到前台都可以通过
    getElementsById的方法得到,之后你想focurs()还是作别的都可以。
      

  10.   

    下面的代码将光标一直跳到TextBox18,之后再按回车键光标还在TextBox18里,跳不到TextBox1;这问题实在让我头疼几天了,请高人们帮我解决,希望在下面的代码基础上编写代码,万分感谢各位!!!<script language="javascript">
       function keydown(){
          var dom=document.all;
          for(i=0;i<dom.length;i++){
    if(dom[i].tagName=="INPUT"&&event.keyCode==13){
                 if(dom[i].type.toLowerCase()=="text"&&dom[i].readOnly!=true)
    event.keyCode=9;
                 }
    }
          }
       }   function GetFocus(){
          var allInput = document.getElementsByTagName("input");;
          var al_keydown = window.event.srcElement;
          switch(al_keydown.id){
             case "TextBox1":keydown();
    case "TextBox2":keydown();
    case "TextBox3":keydown();
    case "TextBox4":keydown();
    case "TextBox5":keydown();
    case "TextBox6":keydown();
    case "TextBox7":keydown();
    case "TextBox8":keydown();
    case "TextBox9":keydown();
    case "TextBox10":keydown();
    case "TextBox11":keydown();
    case "TextBox12":keydown();
    case "TextBox13":keydown();
    case "TextBox14":keydown();
    case "TextBox15":keydown();
    case "TextBox16":keydown();
    case "TextBox17":keydown();
    case "TextBox18":{
       if(allInput=="TextBox18" && event.keyCode==13)
           alert(al_keydown.id);
       }
    }
          }
       }
    </script><body onkeydown="GetFocus()" MS_POSITIONING="GridLayout">
      

  11.   

    那你在框架式页面中用我上面贴出来的代码来直接获取试试行不行?!我用这种方法的目的为了光标在TextBox18上时按回车键产生数据提交并将光标跳到TextBox1上的结果。
    如果那位高手另有实现办法可以提出意见和贴出代码来,让同行们共同分享,我会高分报答!
      

  12.   

    <asp:textbox id=TB1 onkeyup="if(event.keyCode == 13)document.all.TB2.select()"></asp:textbox>
    <asp:textbox id=TB2 onkeyup="if(event.keyCode == 13)document.all.TB3.select()"></asp:textbox>
    <asp:textbox id=TB3 onkeyup="if(event.keyCode == 13)document.all.TB1.select()"></asp:textbox>
      

  13.   

    to redfoxhuang(C++++) :
    你的代码终于解决了我得问题,非常感谢你和所有回复该题的热心朋友,感谢你们的帮助!每个人回得到相应的分值。