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フォームタグを使用するサイトに基づく非表示フィールドの使用から問題が発生しました。バックエンドを変更してそこですべての処理を実行しますが、それは1日の真っ只中なので、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 に答える