如何通过按下回车键触发输入按钮的类型

3
在JSF 1.2中,我正在使用h:commandButton type="button",但是当我在它上面按Tab键并按Enter键时,按钮不会触发。我尝试使用onkeypress="keyEnter(event)"
     function keyEnter(eve){
         if (eve.keyCode == 13) {
              document.getElementById(eve.target.id).click();
          }
          return false;
      }

当按下回车键时,它会触发按钮。现在我的问题是,我有很多类型为button的h:commandButton元素,我该如何实现将keyEnter(eve)应用于所有按钮元素?

提前感谢您的帮助。

4个回答

3

请尝试以下代码

完整代码

function keyEnter(eve){
    var key = eve.keyCode || eve.which;
     if (key == 13) {
         document.getElementById(eve.target.id).click();
     }
      return false;
};

要绑定所有,您可以这样操作

$('input[type="button"]').on("keyenter",function(eve){
     var key = eve.keyCode || eve.which;
     if (key == 13) {
          $(this).click();
      }
      return false;        
});

0

使用on绑定监听器

$(document).on("keyup","button", function(eve){
      if (eve.keyCode == 13) {
          $("#" + eve.target.id).trigger("click");
      }
      return false;        
});

此外,

使用jQuery,您可以使用trigger()函数:

$("#" + eve.target.id).trigger("click")

或者通过使用.click()(这是上述方法的快捷方式)来实现:

$("#" + eve.target.id).click()

OP想要将事件处理程序绑定到所有按钮。 - Adriano Carneiro

0

您可以使用on()keyenter事件处理程序绑定到文档中的所有按钮:

$(document).on("keyenter","button", function(eve){
      if (eve.keyCode == 13) {
          document.getElementById(eve.target.id).click();
      }
      return false;        
});

相应地进行调整。


0

要将您的事件实现到所有按钮元素中,可以像这样操作:

$('button').each(function(){
     $(this).keypress(function(){
         if (eve.keyCode == 13) {
             $(this).click(); 
          }
          return false;
      }
});

OP希望将事件处理程序绑定到所有按钮上。 - Adriano Carneiro

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接