【问题标题】:Re-enable Enter key press on a text field在文本字段上重新启用 Enter 键按下
【发布时间】:2016-08-19 22:03:31
【问题描述】:

我正在使用这个逻辑:Jquery: how to trigger click event on pressing enter key 按下 Enter 键上的 提交 按钮。

但是在 web page Enter 键似乎被禁用,因为 Enter 键按下没有调用 keypress 函数的回调:

var otp_fun = function (otp_sel, cmd_btn_sel) {
            $(otp_sel).css({
                'font-size': '2em',
                'color': 'red',
                'height': '3em',
                'width': '12em'

            }).attr('type', 'text').focus().keypress(function (e) {
                if (e.which == 13) {
                    e.preventDefault();

                    console.log("otp_sel len=",$(otp_sel).val().length);
                    if ($(otp_sel).val().length >= 4)
                    {
                        console.log("pressing eeee button");
                        $(cmd_btn_sel).trigger('click');

                    }
                    return false;
                }
                else
                {
                    console.log("e.which=",e.which);
                }
            });
        }

如何重新启用此 Enter 键?

【问题讨论】:

  • 将按键事件绑定到页面正文
  • 据我所知,你在一个函数上附加了一个按键,为什么?
  • 看在上帝的份上,请使用简短而有意义的变量名。

标签: jquery


【解决方案1】:
       var otp_fun = function (otp_sel, cmd_btn_sel) {
        $(otp_sel).css({
            'font-size': '2em',
            'color': 'red',
            'height': '3em',
            'width': '12em'

        }).
  attr('type', 'text').focus().keypress(function (e) {
  var key = e.which;
  if(key == 13)  //  Enter key Code 
   {
     $(cmd_btn_sel).trigger('click'); 
   }
 }); 

【讨论】:

    【解决方案2】:

    将事件处理程序附加到windowdocument 对象:

    $(window).keypress(function(e) {
      if (e.which == 13) {
        e.preventDefault();
    
        console.log("otp_sel len=", $(otp_sel).val().length);
        if ($(otp_sel).val().length >= 4) {
          console.log("pressing eeee button");
          $(cmd_btn_sel).trigger('click');
        }
      } else {
        console.log("e.which=", e.which);
      }
    });
    

    这将允许用户在任何地方按Enter 来触发提交 按钮。如果您希望它仅在关注元素时起作用,请将 window 更改为元素的选择器。 这段代码需要运行才能工作,所以不要把它放在不立即调用的函数中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-04-29
      • 2011-06-06
      • 1970-01-01
      • 1970-01-01
      • 2016-08-13
      • 1970-01-01
      • 2014-09-20
      • 1970-01-01
      相关资源
      最近更新 更多