javascript - 如何修复 JQuery 掩码中的字符 'A'?

标签 javascript jquery asp.net-mvc jquery-mask

我一直在 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/

相关文章:

javascript - 剑道网格 : Drag and Drop Cell Data From One Grid Into another

c# - Entity Framework 模型到 Json 结果

javascript - 如果元素在 jQuery 中具有某个类,如何忽略 click()?

javascript - 在 ExtJS XTemplate 中调用函数

javascript - Bootstrap 切换不起作用

javascript - 获取复选框值并将它们放入数组中

javascript - jQuery函数比较日期和当前日期

javascript - Socket.IO 作用域问题 (Node.JS)

javascript - AngularJS UI 事件绑定(bind)不起作用

asp.net - ASP.NET 应用程序可以处理 NServiceBus 事件吗?