我在javascript工作。我想在我的文本字段中添加只允许使用字符的验证。
连同字符,我允许左箭头键有键码37.但是这会产生问题,因为%的键码也是37.而且我不想允许%符号。
请建议我如何区分%和左箭头键,因为两个键码都是37?
答案 0 :(得分:1)
如果你按'百分比'键,字符代码是37,对于'左箭头'键,它不是37; e.g:
$('#test').keypress(function(oEvent) {
if (oEvent.charCode == 37) {
return false;
}
});
另见jsfiddle。
=== UPDATE ===
有关其他Internet Explorer支持:
$('#test').keypress(function(oEvent) {
var iCode = typeof oEvent.charCode == 'number' ? oEvent.charCode : oEvent.keyCode;
if (iCode == 37) {
return false;
}
});
另见jsfiddle。
答案 1 :(得分:0)
不要限制按键进行验证。人们可以复制/粘贴以克服这一点。
您需要使用Regex以验证您的输入。
从https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RegExp
了解详情答案 2 :(得分:0)
您应该在用户提交表单后验证您的用户输入。您可以编写一个函数,表单的“onsubmit”属性在数据提交到服务器之前运行,或者您可以将表单操作设置为“action ='javascript:someFunction()'”两种方式都可以。禁止击键使得用户界面对于最终用户来说更复杂和麻烦,并且对xss或注入攻击造成安全风险。我建议用javascript检查用户输入,如果无效则返回错误信息,然后在服务器端再次验证数据,并清理数据。