Javascript 如何在不使用JQuery的情况下应用字段验证

Javascript 如何在不使用JQuery的情况下应用字段验证,javascript,html,jquery,keypress,getelementbyid,Javascript,Html,Jquery,Keypress,Getelementbyid,我试图在不使用JQuery的情况下在单个字段中只允许9位数字。我无法修改html输入。我以为没有JQuery这会很简单,但看起来不是这样。任何协助都将不胜感激 小提琴: 下面的HTML: <input class="formInput" type="text" style="width: 200px;" name="myNumber" id="myNumber" value="&q

我试图在不使用JQuery的情况下在单个字段中只允许9位数字。我无法修改html输入。我以为没有JQuery这会很简单,但看起来不是这样。任何协助都将不胜感激

小提琴:

下面的HTML:

<input class="formInput" type="text" style="width: 200px;" name="myNumber" id="myNumber" value="">

输入
pattern
属性?将
maxlength
属性设置为9,将
pattern
属性设置为
/^\d{9}$/
。此外,当您从其他帖子复制代码时,请确保链接到原始作者。注意你的代码和被接受的答案之间的相似性。你可能还想试试这个问题的78个其他答案中的任何一个。
function setInputFilter(textbox, inputFilter) {
  ["input", "keydown", "keyup", "mousedown", "mouseup", "select", "contextmenu", 
"drop"].forEach(function(event) {
 textbox.addEventListener(event, function() {
  if (inputFilter(this.value)) {
    this.oldValue = this.value;
    this.oldSelectionStart = this.selectionStart;
    this.oldSelectionEnd = this.selectionEnd;
  } else if (this.hasOwnProperty("oldValue")) {
    this.value = this.oldValue;
    this.setSelectionRange(this.oldSelectionStart, this.oldSelectionEnd);
  } else {
    this.value = "";
  }
  });
  });
}


setInputFilter(document.getElementById("myNumber"), function(value) {
  return /^\d{9}/.test(value); });