使用javascript限制可接受输入的选择

时间:2010-04-09 09:43:32

标签: javascript

是否可以阻止用户使用javascript向文本框写信(即强制用户只在文本框中输入数字)?

5 个答案:

答案 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);
})