允许用户输入特定键

时间:2018-09-27 19:58:21

标签: javascript jquery html

我有一个HTML表,我想允许用户编辑特定的单元格,问题是他们只能输入1、3、5或9,不允许输入其他数字和文本。另外,当用户更改该单元格中的当前值并按Enter时,我将使用后端更新该值(对此没有问题)。目前,我有一个代码,不允许用户从上面输入其他不同的数字。但是此代码有一些错误,例如:如果我更改单元格中的值,然后按Enter键,则该值不会更新,并且当发生模糊/丢失焦点/离开事件时,该值会自动更改为0,但这仅是发生在我的应用中。因为在codepen中工作正常。我尝试使用不同的浏览器,并且发生了相同的情况。

这是代码段。

AGGREGATE(15,6,$E$2:$E$7/(And(ABS($E$2:$E$7-A2)>=$D$1;ABS($E$2:$E$7-A2)<=$D$2)),RANDBETWEEN(1,SUMPRODUCT(--(And(ABS($E$2:$E$7-A2)>=$D$1;ABS($E$2:$E$7-A2)<=$D$2))))
$(document).ready(function () {
  $('#TableBody').on('keydown', '.number', function (e) {
    var curVal = $(this).text();
    if (e.which == 13) {
      alert("Valor " + curVal);
      $(this).text(curVal);
      $(this).trigger('blur');
    }
    else {
      if (e.which == 49 || e.which == 97 || e.which == 53 || e.which == 101 || e.which == 57 || e.which == 105 || e.which == 51 || e.which == 99) {
        $(this).text("");
      } else {
        NivelAct = curVal;
        $(this).text("");
        $(this).trigger('blur');
      }
    }
  });
  
    $('#TableBody').on('blur', '.number', function () {
      var curVal = $(this).text();
      console.log(curVal);
      if (curVal != 1 || curVal != 3 || curVal != 5 != curVal != 9) {
        $(this).text(curVal);
      }
    });
});

0 个答案:

没有答案