我一直在 ASP.NET MVC 中构建一个将全局化的邮政编码组件。这意味着根据 vendor 的国家,文本框将设置正确的邮政编码掩码。 问题在于某些国家/地区的掩码中固定有一个“A”字符。例如:安道尔的邮政编码是“AD000”(我的掩码),其中 AD 是固定的,后跟 3 位数字。 我的组件是动态的,所以我在数据库中按国家/地区保存了面具,并且呈现了 View 我的组件能够设置它。 但字符 'A' 是 JQuery-mask 中的保留字符,表示 A-Z 字母或数字。 因此,当国家/地区是安道尔时,我的 maks 不会强制用户输入 A,用户可以输入任何内容,我不希望出现这种行为。 我能做什么?
我在某处看到,如果我使用“\”,它会将下一个字符理解为文字。但是没用
$('input.my-class').mask('AD000')
我想要的是,当用户开始输入数字时,组件自动渲染广告,然后等待用户输入数字
最佳答案
您可以自定义 translation 选项。默认值为:
translation: {
'0': {pattern: /\d/},
'9': {pattern: /\d/, optional: true},
'#': {pattern: /\d/, recursive: true},
'A': {pattern: /[a-zA-Z0-9]/},
'S': {pattern: /[a-zA-Z]/}
};
您需要将 'A' 更改为:
{
translation: {
'A': {
pattern: /A/,
fallback: 'A',
optional: false
}
}
}
fallback 用于:
When a user types a invalid char for the current position the plugin will replace it by its fallback instead of erasing them.
$('input.my-class').mask('AD000', {
translation: {
'A': {
pattern: /A/,
fallback: 'A',
optional: false
}
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdn.jsdelivr.net/gh/igorescobar/jQuery-Mask-Plugin@master/dist/jquery.mask.min.js"></script>
<form>
<input type="text" name="field-name" class="my-class" />
</form>
关于javascript - 如何修复 JQuery 掩码中的字符 'A'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56704143/