2009-11-19 59 views
2

我掩蓋了像SSN這樣的字段的輸入,以便在顯示時包含破折號,但希望提交的值僅爲數字。使用jQuery/meioMask提交未被屏蔽的表格值

例如,我的SSN被格式化爲:

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

而且在進入 「1234567890」 我得到了很好的格式化輸出。

123-456-7890 

現在我只想提交的號碼爲「1234567890」。這很容易嗎?

參考:http://www.meiocodigo.com/projects/meiomask/

+0

當使用插件是一個好主意,把它的鏈接 – 2009-11-19 15:42:44

回答

2

我不知道上回答我的問題的禮儀,但我實際使用來自你的答案的得出一個相當簡單的解決方案。

問題源於使用基於站點的隱藏字段,使用Struts框架,它是自動錶單處理和特殊的JSP表單標記。我會改變後端去做所有的處理,但是因爲這是中午,所以我無法重新啓動Tomcat服務器來加載更改,而不會在短時間內導致操作無效。

在提交時,我調用一個函數UnmaskMaskedValue(),它明確設置所有被屏蔽的值,使其不含有無效字符的掩碼。

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

這會在提交任何數據在後端有效之前更改該值。

我很欣賞你的建議,並會評價你,如果只有我能夠。

+0

我現在也使用這個插件性能更好:http://digitalbush.com/projects/masked-input-plugin/ – 2009-11-19 18:34:13

1

貌似這個選項是deprecated

<a onclick="jQuery('#unmasked_string').html(jQuery('#unmasked_input').unmaskedVal());return false;" href="#">Get the unmasked value from the input</a> 
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>