如何为asp.net文本框的数字输入运行数字键?

时间:2016-12-13 08:16:45

标签: javascript asp.net webforms keyboard integer

我的文本框应该只输入数字。它有一个js函数。

<asp:TextBox ID="txtPrintCount" runat="server" MaxLength="2" Style="width: 30px" onkeydown="return CheckNumeric(event);" />
function CheckNumeric(e) {
  if (window.event) { // IE
    if ((e.keyCode < 48 || e.keyCode > 57) & e.keyCode != 8) {
      event.returnValue = false;
      return false;
    }
  } else { // Firefox
    if ((e.which < 48 || e.which > 57) & e.which != 8) {
      e.preventDefault();
      return false;
    }
  }
}

但是,数字小键盘无法使用此功能。只有其他数字键可以在键盘上使用。

我有没有忘记这件事?如何运行数字键?

2 个答案:

答案 0 :(得分:1)

  

我有没有忘记这件事?如何运行数字键?

密钥代码不同。这些数字是4857。小名单来自96105

  

我有一个文本框,只能输入数字。

但是,不应测试密钥,而应测试该值是否为整数:

function isInteger(value) {
  return value === parseInt(value, 10);
}

function CheckNumeric(e) {
  if (window.event) { // IE
    if (!isInteger(window.event.srcElement.value)) {
      event.returnValue = false;
      return false;
    }
  } else { // Firefox, Chrome, Edge, Safari, Opera, etc
    if (!isInteger(e.target.value)) {
      e.preventDefault();
      return false;
    }
  }
}

答案 1 :(得分:1)

您应该使用onkeypress事件而不是onkeydown。改变你的设计:

<asp:TextBox ID="txtPrintCount" runat="server" MaxLength="2" Style="width: 30px" onkeypress="return CheckNumeric(event);" />