【发布时间】:2011-02-20 01:07:44
【问题描述】:
我找到了this question。但是,大多数答案会拦截按键,检查键码,如果它不是可接受的键码,则停止事件。
这有一些问题。
所有答案中的一个常见错误是不会阻止 shift 键组合,因此用户可以输入诸如“@”或“&”之类的内容。
用户仍然可以从剪贴板粘贴错误值。
当您开始处理按键事件时,网页开始做一些奇怪的、意想不到的事情。例如,如果该字段具有焦点并且用户尝试通过按
command-R重新加载页面,则它将不起作用。或者他们无法离开现场。
我想要一个允许按键的解决方案,然后根据正则表达式检查输入的值并删除不需要的字符。
我正在寻找以下方面的解决方案:
不拦截按键事件。
理想情况下在按键后使用正则表达式。
如果它使用 jQuery,则可以。
不需要安装插件。
我试过这个功能:
$('input.numerals_only').keypress(function() {
var v = $(this).val();
var no_nonnumerals = v.replace( /[^0-9]/, '' );
$(this).val(no_nonnumerals);
});
但这不起作用。我仍然可以输入字母。
关于为什么它不起作用的任何信息?我该如何修改它以使其正常工作?其他建议?
【问题讨论】:
标签: javascript jquery regex validation