【问题标题】:jQuery input mask lengthjQuery输入掩码长度
【发布时间】:2010-03-19 18:21:24
【问题描述】:

我有一个输入字段,我想将其限制为仅限字母数字(A-Z、a-z、0-9)字符,最小字段长度为 5,最大总长度为 15 个字符。

有谁知道我如何使用 jQuery 做到这一点?

我正在尝试使用 digitalBush 的 jQuery 输入掩码 - http://digitalbush.com/projects/masked-input-plugin/

问题是除非我输入 15 个字符,否则该字段会变为空白。如果我在输入字段中输入“012345678912345”(15 个字符),那么该值将被存储并且没问题。

但是,如果我输入“12345”作为用户名,当该输入框失去焦点时,它的值会变回空白。有什么我可以在“定义”或选项中更改的东西来解决这个问题吗?

非常感谢您的帮助:)

提姆

【问题讨论】:

  • 您可以发布您用于设置该规则的实际代码吗?
  • 那个链接是救命稻草。

标签: jquery input mask


【解决方案1】:

这样做是这样的:'*' 是字母数字,'?' 之后的任何内容是可选的。

jQuery(function($){
   $("#elem").mask("*****?**********");
});

【讨论】:

  • 有道理! :D 在网站上的演示中根本没有说清楚。非常感谢!
  • 是的,我已经使用了很多次,但我没有看到“?”选项。它被隐藏在站点的更改日志选项卡中。
【解决方案2】:

另外,如果您想根据字符长度更改掩码,就像我一样。 找到了这个好方法:

var arr = ['HomePhone',
    'CellPhone',
    'EmergencyPhone'
    ];
  for (var i in arr)
  {
    $('input[name='+arr[i]+']').mask("999-999-9999?9")
        .keydown(function () {
          var $elem = $(this);
          var a = this.value.replace(/\D/g, "").length;
          setTimeout(function () {
            var n = $elem.val().replace(/\D/g, "").length;
            if (n !== a && (n === 10 || n === 11)) {
              var mask = (n === 11 ? "9999-999-9999" : "999-999-9999?9");
              $elem.mask(mask);
            }
          }, 1);
        });
  }

【讨论】:

    猜你喜欢
    • 2017-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-23
    • 2021-02-09
    • 2014-10-20
    • 2020-10-10
    • 1970-01-01
    相关资源
    最近更新 更多