我正在处理表单文本输入,要求用户输入“a”后跟6个前进数字(0-9)。
(a|)\d{6}
JS不允许用户以此格式键入除字符串以外的任何内容。
然而,我没有运气。 我的代码示例是located here
答案 0 :(得分:1)
阻止用户输入他们想要的任何内容是一个非常糟糕的主意。这就是原因:
让我说我错过了我打算按的键,最后输入了一系列按键:
一 1 2 3 - [R 退格 4 5 6
我希望我的退格会删除我的单据,其余的输入都会通过。想象一下,看到" a12456"相反,因为你的代码已经阻止我输入 r ,这意味着我的 Backspace 删除了3
!
相反,试试这个:
<input type="text" name="code" pattern="a[0-9]{6}" required
title="Please enter an "a" followed by six digits." />
如果用户未以正确的格式输入数据,HTML5的此功能将阻止提交表单。这与服务器端确认相结合,可以很好地工作。此外,它甚至可以在用户禁用JavaScript时使用!
也就是说,对于这种特定的格式,这样做可能更有帮助:
a<input type="text" name="code" pattern="[0-9]{6}" required
title="Please enter six digits" />
通过这种方式,&#34; a&#34;已经存在并且不必输入,使用户只需要键入更改的部分。在服务器上,只需坚持&#34; a&#34;回到它。