2012-08-06 49 views
1

我有以下脚本检测TAB按键,使脚本执行条件

$('.formfield:not(.NoHighlight, #P_PH_PHONE, #P120_PH_EMAIL) :input').focus(function(e){ 


      var currentElementonForm = $(this); 
      if(currentElementonForm.is("input[type=submit]")){ 
       currentElementonForm.parents('form').submit(); 
      } 

    }); 

目前,该页面提交切换到此用户(keyborad TAB键)提交按钮。我想停止这一点,但只有当用户点击没有选项卡按钮时才会这样做。希望这个问题很清楚并且乐意给出更多细节。我曾尝试检测e.keyCode == 9,但它将其记录为“未定义”。

+1

请问这个问题有帮助吗? http://stackoverflow.com/questions/4762594/jquery-keyup-for-tab-key – Paul 2012-08-06 10:46:37

+0

e.keyCode来作为“未定义”未能识别事件键码。 – Chin 2012-08-06 10:57:26

回答

0

我必须找到一种替代的方式来处理这个问题。问题是即使在使用TAB键时,“focus”事件也不会返回keyCode。所以必须使用不同的解决方案。这对我来说是新事物,希望这可能会让有同样问题的人受益。

0

enter code here编辑:由于keyCode不能正常工作,我们可以以不同的方式解决这个问题吗?

$('.formfield input[type=submit]').click(function() { 
     $(this).parents('form').submit(); 
    }); 

$('.formfield:not(.NoHighlight, #P_PH_PHONE, #P120_PH_EMAIL) :input').focus(function(e){ 
      var currentElementonForm = $(this); 
      if(currentElementonForm.is("input[type=submit]")){ 
       var code = e.keyCode || e.which; 
       if (code !== 9) { 
        currentElementonForm.parents('form').submit(); 
       } 

      } 

    }); 
+0

谢谢..但e.keyCode结果为“undefined” – Chin 2012-08-06 10:58:14

+1

问题是keyCode在“焦点”事件时未触发。 – Chin 2012-08-06 11:02:47