Javascript验证符号%不得在文本字段中允许

时间:2012-01-24 07:41:01

标签: javascript

我在javascript工作。我想在我的文本字段中添加只允许使用字符的验证。

连同字符,我允许左箭头键有键码37.但是这会产生问题,因为%的键码也是37.而且我不想允许%符号。

请建议我如何区分%和左箭头键,因为两个键码都是37?

3 个答案:

答案 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检查用户输入,如果无效则返回错误信息,然后在服务器端再次验证数据,并清理数据。