我屏蔽SSN等字段的输入,以便在显示时包含破折号,但希望提交的值只是数字。
例如,我的SSN格式为:
<input type="text" name="ssn" alt="999-999-9999"/>
输入“1234567890”后,我得到了很好的格式化输出。
123-456-7890
现在我想只将数字提交为“1234567890”。这很容易吗?
答案 0 :(得分:4)
这可能会解决您的问题。但它很快就脏了。它只是用正则表达式删除' - '符号并将其吐出一个隐藏的字段,然后提交。
<input type="text" id="ssnMasked" />
<input type="hidden" id="ssn" name="ssn" />
<input type="button" value="Submit" onclick="RemoveMaskAndSubmit()"/>
<script type="text/javascript">
function RemoveMaskAndSubmit() {
$('#ssn').val($('#ssnMasked').val().replace(/\-/g,''));
$('#formId').submit();
}
</script>
答案 1 :(得分:2)
我不确定礼仪上是否回答了我自己的问题,但我实际上使用了一个相当简单的解决方案,来自你的两个答案。
使用Struts框架使用基于站点的隐藏字段以及它的自动表单处理和特殊的JSP表单标记会产生问题。我会更改后端以进行所有处理,但因为在一天的中间我无法重新启动Tomcat服务器以加载更改而不会在短时间内破坏操作。
在提交时,我调用一个函数UnmaskMaskedValue()
,该函数显式设置所有被屏蔽的值,使其具有不包含无效字符的掩码。
function UnmaskMaskedValue() {
$('#ssn').setMask('9999999999');
}
这会在提交任何数据以使其在后端生效之前更改该值。
我很欣赏你的两个建议,如果我能够的话,我会给你评价。
答案 2 :(得分:1)
看起来此选项为deprecated。
<a onclick="jQuery('#unmasked_string').html( jQuery('#unmasked_input').unmaskedVal() );return false;" href="#">Get the unmasked value from the input</a>