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