web-dev-qa-db-ja.com

フォームの送信後に定型入力からリテラルを削除しますか?

この質問はすでに尋ねられていますが、解決策は明確ではありません。

ジョシュブッシュのMaskedInputプラグインをjQueryに使用しています

私が達成しようとしているのは:

例:マスク付きの電話入力

    $("#txtPhone").mask("(99)9999-9999");

等しい:(00)9398-8373

提出してほしい:0093988373

------送信時に.maskを削除することは可能ですが、値は保持しますか?

17
Wednesday Man

unmaskを使いたいと思います

$("#myForm").submit(function() {
  $("#txtPhone").unmask();
});
25
Alex Peattie

入力マスクを初期化するときに、removeMaskOnSubmitをtrueに設定します。

    $("#txtPhone").inputmask({removeMaskOnSubmit: true});
13
Shameem Ahmed

プラグインサイト に基づく:

$("#txtPhone").val($("#txtPhone").mask()); 
7
dperez

unmaskは関数ではありません。これが私の使い方です。 autoUnmask:true

    $('#amount').inputmask('999.999.999.999', {
        numericInput: true,
        autoUnmask: true,
    });
2
Umut Yerebakmaz

完了したコールバックを使用している場合は、次のように使用できます。

_$(element).mask("(99)9999-9999", {
  completed : function () {
    var numbers = this.val().replace(/()-/g,'');
  }
}
_

それ以外の場合は、以下を使用できます。

$(element).val().replace(/()-/g,'');

送信する前にこれを行う場合は、送信イベントをキャプチャし、すぐ上のコードを使用してフォームを送信することをお勧めします。

編集: Alex Peattieがunmask()関数を指摘しましたが、これは私のものよりもはるかに優れたソリューションです。私はここに私の答えを残しますが、私は彼の解決策を使います。

1
Ivan

1つ以上の入力が送信されていると仮定すると、以下を使用できます。

// unmask all inputs, before savinf;
$(FormObj+" input[type=text]").each(function() {
    $(this).unmask();
});

ここで、FormObjは、#formなどのフォームオブジェクトIDです。

0
Paulo Henrique

を使用して、マスクされた入力で生の値を抽出することもできます。

$("#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
0
AlexB