この質問はすでに尋ねられていますが、解決策は明確ではありません。
ジョシュブッシュのMaskedInputプラグインをjQueryに使用しています
私が達成しようとしているのは:
例:マスク付きの電話入力
$("#txtPhone").mask("(99)9999-9999");
等しい:(00)9398-8373
提出してほしい:0093988373
------送信時に.maskを削除することは可能ですが、値は保持しますか?
unmask
を使いたいと思います
$("#myForm").submit(function() {
$("#txtPhone").unmask();
});
入力マスクを初期化するときに、removeMaskOnSubmitをtrueに設定します。
$("#txtPhone").inputmask({removeMaskOnSubmit: true});
プラグインサイト に基づく:
$("#txtPhone").val($("#txtPhone").mask());
unmaskは関数ではありません。これが私の使い方です。 autoUnmask:true
$('#amount').inputmask('999.999.999.999', {
numericInput: true,
autoUnmask: true,
});
完了したコールバックを使用している場合は、次のように使用できます。
_$(element).mask("(99)9999-9999", {
completed : function () {
var numbers = this.val().replace(/()-/g,'');
}
}
_
それ以外の場合は、以下を使用できます。
$(element).val().replace(/()-/g,'');
送信する前にこれを行う場合は、送信イベントをキャプチャし、すぐ上のコードを使用してフォームを送信することをお勧めします。
編集: Alex Peattieがunmask()
関数を指摘しましたが、これは私のものよりもはるかに優れたソリューションです。私はここに私の答えを残しますが、私は彼の解決策を使います。
1つ以上の入力が送信されていると仮定すると、以下を使用できます。
// unmask all inputs, before savinf;
$(FormObj+" input[type=text]").each(function() {
$(this).unmask();
});
ここで、FormObjは、#formなどのフォームオブジェクトIDです。
を使用して、マスクされた入力で生の値を抽出することもできます。
$("#YourSelector").data( $.mask.dataName )();
ソース: https://github.com/digitalBush/jquery.maskedinput/issues/318
例
そのようなマスクでphone
入力を使用する場合:
$(".phone").mask("99 99 99 99 99")
以下を使用してユーザー入力を抽出できます。
$(".phone").data($.mask.dataName)()
// will produce "0102030405" while the masks displays 01 02 03 04 05