【问题标题】:How to make mandatory for the user to enter only alphanumeric values in Jquery如何强制用户在 Jquery 中仅输入字母数字值
【发布时间】:2014-11-07 11:29:33
【问题描述】:

我有一个输入类型,我想阻止用户只输入 字母数字 值,例如 A-a 和 0-9。

我已经这样做了:

$('.name_list').live('keypress', function (event) {
        var regex = new RegExp("^[a-zA-Z0-9\b]+$");
        var key = String.fromCharCode(!event.charCode ? event.which : event.charCode);
        if (!regex.test(key)) {
            event.preventDefault();
            return false;
        }
    });

在此我面临 tabrightleftdelete 键不起作用的问题。我还有什么要补充的,请帮助我。

更新代码

$('.name_list').live('keypress', function (event) {
        var regex = new RegExp("^[a-zA-Z0-9\b]+$");
        var key = String.fromCharCode(!event.charCode ? event.which : event.charCode);
        var charCode = (event.which) ? event.which : event.keyCode;
        var Enteted = String.fromCharCode(event.which).toLowerCase();
        if (charCode != 9 && (charCode != 37 || Enteted !='%') && charCode!=39 && charCode != 46 && !regex.test(key)) {
            event.preventDefault();
            return false;
        }
    });

在此我面临允许输入 % 的问题。

【问题讨论】:

标签: javascript jquery


【解决方案1】:

因为你使用的是这个条件:

if (!regex.test(key)) {
   //...
} 

你需要使用这个条件来检查,是tab,左箭头,右箭头还是删除按钮。

if (key !== 9 && key != 37 && key!=39 && key != 46 && !regex.test(key)) {

【讨论】:

  • 我已经更新了代码,请检查它是否允许 % on key press
  • 我们如何处理这个 %
  • 是的,使用 8 而不是 46。
  • 仍然是同样的问题,它允许 %
  • 不知道为什么...% 来自 shift = 16 和 53
【解决方案2】:

jQuery 验证插件

jQuery.validator.addMethod("alphanumeric", function(value, element) {
        return this.optional(element) || /^[a-zA-Z0-9]+$/.test(value);
}); 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-19
    相关资源
    最近更新 更多