【发布时间】:2016-03-08 16:05:45
【问题描述】:
我不想允许在文本框中输入、复制和粘贴十进制值和字母。而且我可以输入负值。但是负号(“ - ”)应该总是在开头。请看下面的小提琴小提琴。在这个小提琴中,它不允许十进制值和字母表。但是如果我像这样复制并粘贴“22.50”,它就是十进制值。我该如何限制这个。
我的要求,
1) 只允许数字(正数和负数)。
2) “-”符号应该在开头。不允许在中间或某处。
3) 字母不应该允许复制粘贴。
4) 我可以复制粘贴数字,如“2222”和“-2222”。但不是字符和小数。
var input = document.getElementById("myInput");
input.onkeypress = function(e) { e = e || window.event;
var charCode = (typeof e.which == "number") ? e.which : e.keyCode;
// Allow non-printable keys
if (!charCode || charCode == 8 /* Backspace */ ) {
return;
}
var typedChar = String.fromCharCode(charCode);
// Allow numeric characters
if (/\d/.test(typedChar)) {
return;
}
// Allow the minus sign (-) if the user enters it first
if (typedChar == "-" && this.value == "") {
return;
}
// In all other cases, suppress the event
return false;
};
<input type="text" maxlength="10" id="myInput">
请帮我做这件事。
【问题讨论】:
-
怎么样?
-
您的输入是表单的一部分吗?提交表单时可以使用
pattern验证吗? -
在 input.onkeypress 函数中添加一条警告语句。然后你会看到这个函数何时过滤输入。它可能不会对粘贴的输入执行。
-
绑定按键有风险,用户可以右键选择粘贴。不确定如果发生这种情况是否会触发关键事件
标签: javascript jquery html css