【发布时间】:2014-03-06 05:09:15
【问题描述】:
我在这里要做的是要求将电话号码作为 (XXX) XXX-XXXX 输入到我的 HTML 表单中,并且将 SS 号码输入为 XXX-XX-XXXX。而已。
我这样做的唯一原因是为了使表单提交结果一致且易于导出到 Excel。
有人告诉我使用 Javascript 来执行此操作,但也许我不够先进,无法理解执行此操作的所有步骤。
请记住我是初学者,请在这里指出正确的方向吗?
哇,非常感谢 Ethan 和 @suman-bogati!我现在几乎在那里!该字段现在弹出一个错误,说明使用正确的格式 555-55-5555。那太棒了。但无论我在该字段中输入什么,弹出窗口都会持续存在。我试过 555-55-5555 和 555555555 都没有被接受。这是该字段的 HTML:
<label>
Social Security Number:
<input id="ssn" required pattern="^d{3}-d{2}-d{4}$"
title="Expected pattern is ###-##-####" />
</label>
</div>
<script>$('form').on('submit', function(){
$(this).find('input[name="SocialSecurity"]').each(function(){
$(this).val() = $(this).val().replace(/-/g, '');
});
$(this).find('input[name="ssn"]').each(function(){
$(this).val() = $(this).val().replace(/-/g, '');
});
});</script>
<br />
【问题讨论】:
-
在 HTML5 中,输入元素可以有一个
patternattribute that specifies the format。另一方面,你永远不应该相信客户端验证,因为它很容易被绕过,你总是必须在服务器端验证格式。 -
所以你想要两个模式应该匹配
(XXX) XXX-XXXX和(XXX) XXX-XXXX? -
苏珊说得对。将行更改为 什么都不做。
-
从可用性的角度来看,这种方法都是错误的。您应该问:我可以有意义地处理哪些格式,并将它们规范化为我想要的格式,以及我如何帮助用户使用其中一些格式?解决错误的问题并不比解决正确的问题容易得多。
标签: javascript html forms field masking