是否可以阻止用户使用javascript向文本框写信(即强制用户只在文本框中输入数字)?
答案 0 :(得分:5)
当然,您在keydown事件上放置一个事件处理程序,并在相关文本框具有焦点时取消非数字的事件处理程序。请参阅element.onkeydown
event。
你当然可以在vanilla Javascript中执行此操作但是很多事情,使用库(比如jQuery)更容易。
例如,假设:
<input id="one" type="text">
<input id="two" type="text">
尝试:
document.getElementById("one").onkeydown = numbers_only;
function numbers_only(evt) {
return evt.keyCode >= 48 && evt.keyCode <= 57;
}
第一个应该只允许数字。
答案 1 :(得分:1)
如果您不想从头开始编写,可以使用以下jQuery插件: http://www.itgroup.com.ph/alphanumeric/然后写下:
$('#id').numeric();
此前有人问过: how do i block or restrict special characters from input fields with jquery?
ADDITIONAL :并确保您在服务器上验证无论如何!
答案 2 :(得分:1)
我正在寻找的确切代码是:
$('#id').bind('keypress', function (e) {
return (e.which != 8 && e.which != 0 && (e.which < 48 || e.which > 57)) ? false : true;
});
答案 3 :(得分:0)
如果你想在提交事件中捕获这个,那么你可以使用正则表达式在提交事件hanlder中执行此操作。
但是如果你想在用户与文本框的互动时这样做,那么你将不得不操纵 keydown 和 焦点 活动。通过仅连接按键或keydown事件不会阻止用户输入其他字符。他还可以将文本拖到文本框中。所以焦点事件将阻止这种情况发生。
答案 4 :(得分:0)
$('#input-id').bind('keypress', function(e) {
return !((e.which < 48 || e.which > 57) && e.which != 8 && e.which != 0);
})