Javascript 如何在不使用JQuery的情况下应用字段验证
我试图在不使用JQuery的情况下在单个字段中只允许9位数字。我无法修改html输入。我以为没有JQuery这会很简单,但看起来不是这样。任何协助都将不胜感激 小提琴: 下面的HTML: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
<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); });