JQuery掩码无法正常工作

时间:2014-08-21 07:09:16

标签: jquery masking

我在jquery中遇到掩码问题,我想制作一个掩码,允许我输入任意字母0-n次。 我有这样的事情:

$.mask.definitions['@']='[A-Za-z]';
$('#textMask').mask("@@@@@@@@@@");

但是使用我的代码我只能插入十个字符。任何人都有想法如果它当然可能吗?

我想到这样的事情:

$('#textMask').mask("@*");

但这允许我插入一个字母和一个字符,无论什么字符。例如d5等 简而言之,我想允许用户键入仅包含字母的文本。 e.g。

abcdEEEE
abRFdas
a
 //empty field
bfdjksgbjfdsgbjklfbjklfgnfljkgbnhlfsdjgnfdlskgnfdsgfhsdlgdf
...

我使用了JQuery 1.10.3和插件版本1.3.1(http://digitalbush.com/projects/masked-input-plugin/

1 个答案:

答案 0 :(得分:1)

JQuery Mask plugin如果您在mask字段上应用<input>方法,则会自动为其分配maxlength个属性。因此,当您执行$('#textMask').mask("@*");时,您会得到<input id='textMask' maxlength='2'/>之类的内容。为避免这种情况,您可以在掩码上设置maxlength属性。另一方面,要实现0-n次,您可以使用recursive属性。所以最后接受0-n次信:

$('#textMask').mask('@', { 'translation' : { '@' : { pattern : /[A-Za-z]/, recursive: true, }}, maxlength : false });

请注意,如果您之前在输入字段中设置mask,则可能设置maxlength属性并指定maxlength : false未设置此属性(我认为这就像一个错误) ,所以先前在你的元素上应用unmask()

基于评论的编辑:

您使用的是哪个版本的JQuery和插件掩码?我使用1.11.0的JQuery和1.7.4的插件掩码并正确检查this jfiddle

希望这有帮助,