正しく動作させるにはjQueryのMaskedInputアンマスク()関数を取得する方法?

StackOverflow https://stackoverflow.com/questions/2580550

質問

私は、デフォルトでは、米国の電話番号マスクを持ちたいというのが私のページ上の1つの入力を持ってしようとしています。エンドユーザーがspecifingチェックボックスをクリックすると、彼らは私がマスクを除去することにしたいの国際電話番号を入力したいと思います。

私は、複数の方法を試してみましたし、これまで成功していません。私は非表示にjQueryのを使用しています現在のプロジェクトでは/完全に異なる入力を示しています。しかし、私はそのオプション好きではない、より合理的なアプローチをしたいと思います。

私は以下を使用しています:

jQueryの1.4.1(すぐに1.4.2にアップグレードしよう)とjQuery.MaskedInput-1.2.2

<script type="text/javascript">
$(document).ready(function($) {
  if ($("#InternationalOfficePhone").attr('checked') == false) {
    $("#OfficePhone").mask("(999) 999-9999? x99999");
  }
});

$("#InternationalOfficePhone").click(function() {
  if ($("#InternationalOfficePhone").attr('checked') == true) {
    //$("#OfficePhone").mask(); //doesn't work
    //$("#OfficePhone").unmask(); //doesn't work
    $("#OfficePhone").unmask("(999) 999-9999? x99999"); //doesn't work
  } else {
    $("#OfficePhone").mask("(999) 999-9999? x99999");
  }
});
</script>

適切作品上記のコードは、デフォルトのマスクを設定し、私はそれがマスクを削除しませんInternationalOfficePhoneのClickイベントにしようとするものに関係なくします。

すべてのヘルプははるかに高く評価されます。

役に立ちましたか?

解決 2

私は仕事にそれを得るためのコードを把握することができました。以下は、私が今使っているコードです。

<script type="text/javascript">
$(function($) {
  $("#OfficePhone").mask("(999) 999-9999? x99999");
  $("#InternationalOfficePhone").click(function() {
    var mask = "(999) 999-9999? x99999";
    if ($("#InternationalOfficePhone").is(':checked')) {
      $("#OfficePhone").unmask(mask);
    } else {
      $("#OfficePhone").mask(mask);
    }
  });
});
</script>

他のヒント

あなたはunmask関数にパラメータを渡す必要はありません! パラメータなしでそれを使用して、それがうまく機能します。

$("#OfficePhone").unmask();

私は同じ問題を介して実行し、どのような私を助けたことはあります:

    var maskedInput = $("#id").data('mask');
    if (maskedInput) {
        maskedInput.remove();
    }

:checked代わりのattrチェックを使用してみてください、私はそれが問題だと思います。私の場合の条件の平均使用$('#InternationalOfficePhone').is(':checked')ます。

inputmaskを削除します:

$(selector).inputmask('remove');

または

var input = document.getElementById(selector);
if (input.inputmask)
  input.inputmask.remove()

または

Inputmask.remove(document.getElementById(selector));
1.4.1:

私はquery.maskedinput.jsにバージョンを使用しています 私が言及しました https://github.com/digitalBush/jquery.maskedinput/ブロブ/ bb66bf9b1c3eddd1d2349cee103127ae08d0a877 /デモ/ index.htmlをする

はマスク解除をすることによって行われ $( "入力")。ブラー(関数(){             $( "#情報")HTML( "仮面値:" + $(この).mask());ます。

例 マスキングは

であります

$( "#のpannumber")( "AAAAA 9999 A")マスク;ます。

アンマスキング

$( "#1 pannumber")。ブラー(関数(){

VAR pannumber = $(この).mask();

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top