【问题标题】:Backspace key issue in firefoxFirefox中的退格键问题
【发布时间】:2018-04-16 14:13:41
【问题描述】:

我有一个文本框并仅使用 jquery 应用了 Allow Alphabets With Space。它在 chrome 中工作,但在 Firefox 中,退格键不起作用。

<input type="text" placeholder="" id="id1">

$(function(){
$('#id1').keypress(function (event) {
      if ((event.which >= 65 && event.which < 91) || (event.which > 96 && event.which < 123) || event.which === 32 || event.which===0) {
          return true;
      }
        else {
          event.preventDefault();
      }
 })});

这里是Plnkr

【问题讨论】:

    标签: javascript jquery firefox


    【解决方案1】:

    浏览器处理退格字符的方式有所不同。在 Chrome 中,退格键永远不会到达 keypress 事件处理程序,但在 Firefox 中会。

    如果您将|| event.which === 8 添加到条件中,您将允许退格并返回 true,这将使其在 Firefox 中工作。

    编辑:上、下、左、右和 Tab 键在 Firefox 中也不起作用。

    var ignoredKeys = [8, 9, 37, 38, 39, 40];
    
    if (ignoredKeys.indexOf(event.which) >=0 || (event.which >= 65 && event.which < 91) || (event.which > 96 && event.which < 123) || event.which === 32 || event.which===0) {
        return true;
    } else {
        event.preventDefault();
    }
    

    【讨论】:

      【解决方案2】:

      这应该适用于所有 [主要] 浏览器:

      $('#id1').keydown(function (event) {
          if (event.which == 8) {
              // ...
          } else {
              event.preventDefault();
          }
      );
      

      注意使用keydown 而不是keypress,这对于它的工作至关重要。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-05-16
        • 1970-01-01
        • 2010-10-28
        • 2012-01-24
        • 2020-01-14
        相关资源
        最近更新 更多