使用javascript限制用户输入

时间:2009-03-18 09:14:45

标签: javascript html user-interface input

有人能告诉我一些在Javascript中限制用户输入(在输入标签上)的例子吗?

当我们将输入(type =“text”)设置为仅接受数字时,它会忽略除数字之外的任何其他输入......

我认为它对数字输入很方便(例如拉链,信用卡,金钱,价值,分数,日期等......),如果你能告诉我如何使用模式创建输入,例如:

Please Input Date:
|-----------------|
|     /     /     |
|-----------------|

PS: 我听说WebForms 2.0将来会支持这个......(符合Acid 3标准的浏览器?)

输入类型=“日期”
输入类型=“时间”
输入类型=“数字”
输入类型=“钱”

但这只是未来的新闻:D

3 个答案:

答案 0 :(得分:8)

这可能会对你有帮助。

http://www.w3schools.com/jsref/event_onkeydown.asp

<html>
<body>

<script type="text/javascript">
function noNumbers(e)
{
var keynum;
var keychar;
var numcheck;

if(window.event) // IE
{
keynum = e.keyCode;
}
else if(e.which) // Netscape/Firefox/Opera
{
keynum = e.which;
}
keychar = String.fromCharCode(keynum);
numcheck = /\d/;
return !numcheck.test(keychar);
}
</script>

<form>
<input type="text" onkeydown="return noNumbers(event)" />
</form>

</body>
</html>

答案 1 :(得分:5)

这个问题已经得到了答案,但我认为有更好的解决方案。你不必在keydown等上自己实现它,有这样的库。他们称之为“输入掩码”的技术。查看this jQuery plugin它完全符合您的要求。

答案 2 :(得分:3)

您可以在表单提交上使用特定的库,例如jQuery Validate(或JS框架提供的任何内容)。另一个解决方案是控制keyUp&amp;的值。模糊事件,但决定如何处理格式错误的条目(特别是当格式有点复杂 - 即不仅仅是不受欢迎的字符时)可能会变得非常混乱。所以,总而言之,我建议客户端控制提交。