当前位置: 首页 > 知识库问答 >
问题:

我如何通过jQuery按下键盘的一个按钮?

姚建树
2023-03-14

这是我的代码:

$("input").on({
    keydown: function(ev) {
        if (ev.which === 27){   // esc button
           backspace_emolator();
        } else if (ev.which === 8){   // backspace button
           console.log('backspace button pressed');
        }
    }
});

function backspace_emolator(){
   // remove one character exactly how backspace button does
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" name="fname" class="myinput">

我所要做的就是使esc按钮与backspace按钮完全相同。所以我想删除的一个字符。

我该怎么做呢?

注意:我不想只删除 .myinput 值的一个字符。我想按退格按钮。因此,当我按下 esc 按钮时,按下的退格按钮应该显示在控制台中。


共有3个答案

韩淇
2023-03-14

使用此代码,它可以按您的意愿工作。

$("input").on({
    keydown: function(ev) {
        if (ev.which === 27){   // esc button
           backspace_emolator(ev);
        }
        if (ev.which === 8){   // backspace button
           console.log('backspace button pressed');
        }
    }
});

function backspace_emolator(ev){
   // remove one character exactly how backspace button does
        var inputString = $('#inputID').val();
        var shortenedString = inputString.substr(0,(inputString.length -1));
    $('#inputID').val(shortenedString);
        console.log("Backspace button Pressed"+" "+inputString);

}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="inputID" type="text" name="fname" class="myinput">
夏侯自珍
2023-03-14
匿名用户

以下是解决方案:

您必须为您的< code >输入触发一个事件。

$("input").on({
    keydown: function(ev) {
        if (ev.which === 27){   // esc button
          backspace_emolator();
        }
    }
});

function backspace_emolator(){
  var e = jQuery.Event("keydown", { keyCode: 8 }); // you can specify your desired key code 
  $('input').trigger(e);
}

东门令
2023-03-14

这就是我要做的。我并不认为这是最好的解决方案,相反,这是一个可行的解决方案。

$("input").on({
    keydown: function(ev) {
        if (ev.which === 27){   // esc button
          backspace_emolator(this);
        } else if (ev.which === 8){   // backspace button
          console.log('backspace button pressed');
        }
    }
});

function backspace_emolator(el){
   // remove one character exactly how backspace button does
   var val = el.value
   el.value = val.substring(0, val.length - 1);
   // trigger event
   var e = jQuery.Event("keydown");
   e.which = 8; // # Backspace keyCode
   $(el).trigger(e);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" name="fname" class="myinput">
 类似资料:
  • 问题内容: 我想按一下软键盘上的任何键。我不想在Activity中使用EditView或TextView,必须从Activity内部的扩展View处理该事件。 我只是试过这个: 1)覆盖活动方法。该功能不适用于软键盘,只能捕获很少的硬键盘。 2)创建我的并在我的视图中注册该视图,其中包含已注册并正在运行的。这对于软键盘根本不起作用。 3)覆盖View方法。如果我设置我的OnKeyListener或

  • 问题内容: 我有一个“保存”按钮,我想与软键盘一起向上推。因此,当用户单击我的布局中的EditText时,按钮必须保持在键盘上方。现在,该按钮将隐藏在键盘下方。你怎么做到这一点? 提前致谢! 问题答案: 您需要将键盘的输入模式设置为。您可以这样做,将以下行添加到清单中您的活动属性中: 这是在活动中添加的属性的示例:

  • 我需要在Android Studio上帮助回答这个问题。 我如何通过按下后退按钮跳转到片段?我们没有添加任何按钮。只需点击Android手机上的后退按钮。 例如: 我正从activity_main走向支离破碎1 我正从碎片1走向碎片2 当我按下后退按钮时,我想跳转到activity_main,而不是片段1。

  • 我有一个线性布局(LinearLayout),其中有几个编辑文本(EditText),它们都是通过编程方式创建的(不是用XML布局),尤其是没有id。 当我在其中一个中键入,并且下一个(各自对焦)被禁用,并且我按下键盘上的Next IME按钮时,焦点前进到禁用的,但我不能在其中键入任何内容。 我所期望的是焦点前进到下一个启用的编辑文本。除了通过EditText禁用EditText之外,我还尝试了。

  • 当选中复选框在第二个文本域上设置启用(false)并按回车键时,需要将焦点放在第三个文本域 ,如果没有选中任何复选框,则按回车键可以将焦点放在文本域上作为流。我应该添加任何代码或如何使其工作 我的GUI:

  • 问题内容: 我知道我可以使用KeyListener来检查是否按下DELETE ,但是如何在JTable中将keyListener添加到selectedRow? 编辑: 我已经尝试过了,但是没有用: 问题答案: KeyListeners的一个问题是,要侦听的组件 必须 具有焦点。解决此问题的一种方法是使用键绑定。 例如,