6

有人可以向我展示一些限制 Javascript 中用户输入(在输入标签上)的示例吗?

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

我认为数字输入很方便(例如邮编、信用卡、货币、价值、分数、日期等),如果你能告诉我如何使用模式创建输入,例如:

请输入日期:
|-----------------|
| // |
|-----------------|

PS:听说 WebForms 2.0 以后会支持这个……(Acid 3 兼容浏览器?)

输入类型="日期"
输入类型="时间"
输入类型="数字"
输入类型="金钱"

但这只是来自未来的消息:D

4

3 回答 3

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>
于 2009-03-18T09:30:03.253 回答
5

这个问题已经有一个公认的答案,但我认为有一个更好的解决方案。您不必自己在 keydown 等上实现它,有相应的库。他们将您描述的技术称为“输入掩码”。查看这个 jQuery 插件,它完全符合您的要求。

于 2009-04-07T07:42:38.013 回答
3

您可以在表单提交时使用特定的库,例如 jQuery Validate(或任何您的 JS 框架提供的)。另一种解决方案是控制 keyUp 和 blur 事件的值,但决定如何处理格式错误的条目可能会变得非常混乱(尤其是当格式有点复杂时——即不仅仅是不想要的字符)。所以,总而言之,我建议在提交时进行客户端控制。

于 2009-03-18T09:24:02.020 回答