2

我将 SSN 等字段的输入屏蔽为在显示时包含破折号,但希望提交的值仅为数字。

例如,我的 SSN 格式为:

<input type="text" name="ssn" alt="999-999-9999"/>

输入“1234567890”后,我得到了漂亮的格式化输出。

123-456-7890

现在我只想将数字提交为“1234567890”。这很容易吗?

供参考:http ://www.meiocodigo.com/projects/meiomask/

4

3 回答 3

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>
于 2009-11-19T15:57:33.430 回答
2

我不确定回答我自己问题的礼仪,但我实际上使用了一个相当简单的解决方案,该解决方案来源于你的两个答案。

问题来自使用基于使用 Struts 框架的站点的隐藏字段以及它的自动表单处理和特殊的 JSP 表单标签。我会更改后端以在那里进行所有处理,但由于是中午,我无法重新启动 Tomcat 服务器来加载更改,而不会在短时间内破坏操作。

在提交时,我调用了一个函数UnmaskMaskedValue(),该函数将所有屏蔽值显式设置为具有不包含无效字符的掩码。

function UnmaskMaskedValue() {
  $('#ssn').setMask('9999999999');
}

这会在任何数据提交之前更改该值,使其在后端有效。

我很欣赏你的两个建议,如果我能的话,我会给你打分。

于 2009-11-19T18:29:50.627 回答
1

看起来这个选项已被弃用

<a onclick="jQuery('#unmasked_string').html( jQuery('#unmasked_input').unmaskedVal() );return false;" href="#">Get the unmasked value from the input</a>
于 2009-11-19T15:48:20.870 回答