2

我有一个 PHP 生成的表单,用作发票接口。用户通过按 来浏览表单tab。我需要在表单中旋转制表键,直到他们完成发票流程。

例如,使用这种形式:

 <form>

 <input type = "text" name="a" tabindex=1>
 <input type = "text" name="b" tabindex=2>
 <input type = "text" name="c" tabindex=3>
 <input type = "text" name="d" tabindex=4>
 <input type = "text" name="e" tabindex=5> 
 <input type = "text" name="f" tabindex=6>
 <input type = "button" name="g" tabindex=7>

 <input type = "submit" name="h" tabindex=8>

 </form>

我需要将选项卡索引从 1 移动到 7,然后选项卡应将它们移回字段 a。它需要旋转,当我按下 ESC 时,我需要将光标移动到 h。

例子 -

TAB 键将光标从 a->b->c->d->e->f->g->a->b->......->g 移动

ESC 键 只需将光标移动到 h

如何在 HTML 或 javascript 中执行此操作?

4

2 回答 2

2

我使用 id 而不是名称。猜猜这有帮助:

 <form>
     <input type = "text" id="a" tabindex=1/>
     <input type = "text" id="b" tabindex=2/>
     <input type = "text" id="c" tabindex=3/>
     <input type = "text" id="d" tabindex=4/>
     <input type = "text" id="e" tabindex=5/> 
     <input type = "text" id="f" tabindex=6/>
     <input type = "button" id="g" value="next" tabindex=7/>
     <input type = "submit" id="h" value="ok" tabindex=8/>
 </form>
    <script type="text/javascript">
    $('input').keydown(function(event){
        if(event.keyCode == 9 && $(event.target).is('#g') ){
            $('#a').focus(); 
            event.preventDefault();
        }
        else if (event.keyCode == 27){
            $('#h').focus(); 
            event.preventDefault();
        }
    });
    </script>
于 2012-12-06T06:32:04.290 回答
0

我对这个问题使用了以下代码并获得了成功。

   <script> 
   window.history.forward(1); 
   document.attachEvent("onkeydown", my_onkeydown_handler); 
   function my_onkeydown_handler() 
   { 
   switch (event.keyCode) 
   { 

   case 9 :
   document.form.a.focus();
   event.keyCode = 0;
   break;

   case 27 :
   document.form.h.focus();
   event.keyCode = 0;
   break;
   } 
   } 
   </script>
于 2013-01-09T06:37:44.043 回答