仅在移动设备上输入整数数字

时间:2016-06-26 02:30:22

标签: javascript jquery input onkeypress

我正在使用<input type='text' onkeypress='return isNumberKey(event)'>
我尝试了<input type='number'>,但这可以让人们使用句号和“#”。我只希望允许人们只使用非负整数。

理想情况下,我想这样做只有数字小键盘在Safari和Chrome中被拉起(我相信大多数移动用户只使用这两种浏览器)但我绝对会满足于只允许这样做按非负整数。

function isNumberKey(evt) {
    var charCode = (evt.which) ? evt.which : event.keyCode;
    if (charCode != 8 && (charCode < 48 || charCode > 57))
        return false;

    return true;
};

1 个答案:

答案 0 :(得分:3)

您可以将pattern属性与RegExp \Dinput事件,RegExp.prototype.test()String.prototype.slice()与参数0, -1一起使用如果不是与RegExp属性

pattern匹配的数字,请删除最后一个输入值

&#13;
&#13;
var input = document.querySelector("input");
function handleInput(event) {
  var value = this.value;
  if (new RegExp(this.pattern).test(value)) {
    this.value =  value.slice(0, -1)
  }
}
input.addEventListener("input", handleInput);
&#13;
<input type="text" pattern="\D" />
&#13;
&#13;
&#13;