JQuery掩码工作不正常

JQuery掩码工作不正常,jquery,masking,Jquery,Masking,我在jquery中有一个掩码问题,我想制作一个掩码,允许我输入任意字母0-n次。 我有这样的想法: $.mask.definitions['@']='[A-Za-z]'; $('#textMask').mask("@@@@@@@@@@"); $('#textMask').mask("@*"); 但我的代码只能插入10个字符。如果可能的话,有人有想法吗 我会这样想: $.mask.definitions['@']='[A-Za-z]'; $('#textMask').mask("@@@@@@@

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

$.mask.definitions['@']='[A-Za-z]';
$('#textMask').mask("@@@@@@@@@@");
$('#textMask').mask("@*");
但我的代码只能插入10个字符。如果可能的话,有人有想法吗

我会这样想:

$.mask.definitions['@']='[A-Za-z]';
$('#textMask').mask("@@@@@@@@@@");
$('#textMask').mask("@*");
但这允许我插入一个字母和一个字母,不管是什么字符。e、 g d5等。 简而言之,我想允许用户键入只包含字母的文本。 e、 g

等等

我使用了JQuery 1.10.3和插件版本1.3.1()

如果在
字段上应用
掩码
方法,则会自动为其分配
maxlength
属性。所以当你做
$('#textMask').mask(@*)
的东西。为了避免这种情况,您可以在掩码上设置
maxlength
属性。另一方面,要实现0-n次,可以使用
递归
属性。所以最后接受字母0-n次:

$('#textMask').mask('@', { 'translation' : { '@' : { pattern : /[A-Za-z]/, recursive: true, }}, maxlength : false });
考虑到,如果您以前在输入字段上设置了
掩码
,则可能设置了
maxlength
属性,并且指定
maxlength:false
不会取消设置该属性(我认为这像是一个bug),因此之前在元素上应用
unmask()

根据评论进行编辑:

您使用的JQuery和插件掩码是什么版本?我使用JQuery的1.11.0和pluginmask的1.7.4,并正确地工作


希望这有帮助,

假设这个插件使用正则表达式语法,你试过了吗?
“@+”
?如果我把它改成“@+”,我就可以键入'leter'+,例如a+a+b+g+等等。如果没有,我以前没有屏蔽它。我粘贴了你发布的代码,但它没有正常工作,它仍然像我有$('#textMask').mask('@');而且我只能键入一个字母。@如果这对我有效,请检查您的jquery和mask插件版本。如果您想查看我在答案中输入的jfiddle示例,可能是因为我不使用html输入,而是使用GrailsTextField#编辑如果我改为输入什么都没有发生:cOkey我已经没有耐心了,我把我的prev mask插件改成了这个你发布的@albciff。谢谢:)!我看到您最后一次回答编辑,您正在使用不同的掩码插件(),如果可能的话,请尝试使用