【发布时间】:2018-09-19 15:43:24
【问题描述】:
我正在尝试使用 jQuery 使用以下掩码“########-##.####.7.09.009”屏蔽用户输入,因此当用户开始输入时像这样:
1__-__.____.7.09.009(用户键入 1)
12_____-__.____.7.09.009(用户键入 2)
123____-__.____.7.09.009(用户键入 3)
以此类推,直到到达“7.09.009”部分。
用户不应该能够编辑该部分,它就像一个固定的占位符。我已经尝试使用Jasny's input mask 并取得了一些成功,但由于数字被 0 掩盖并且固定后缀有 0,它允许用户在固定部分中输入零的位置。我没有找到将数字占位符从 0 替换为其他内容的方法,因为我想这会解决我的问题。
然后我找到了另一个jQuery mask plugin,它允许我使用# 来屏蔽数字,但由于它也将0 识别为数字的占位符,因此它最终无法正常工作。我也尝试过像这样创建一个自定义掩码:
$("#numero-processo").mask('0000000-00.0000.A.BC.BBC',
{placeholder: "_______-__.____.7.09.009",
'translation': {
A: {pattern: /[7]/},
B: {pattern: /[0]/},
C: {pattern: /[9]/}
}});
这在某种程度上有效,但是当用户到达固定后缀部分时,(他/她)将不得不实际输入后缀“7.09.009”,这是唯一允许的,因为自定义掩码。但是,我不希望用户键入后缀,它需要在那里修复。有谁知道如何做到这一点?谢谢。
【问题讨论】:
-
请记住,在客户端验证上花费太多时间是一场失败的战斗。客户总是有可能绕过它们。你不需要抓住每一个边缘情况。更多地将它们视为指南。
标签: javascript jquery jquery-inputmask