使用jQuery / meioMask提交未屏蔽的表单值

时间:2009-11-19 15:41:11

标签: javascript jquery masking

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

例如,我的SSN格式为:

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

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

123-456-7890

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

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

3 个答案:

答案 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>