17

私は自分のページに、デフォルトで米国の電話番号マスクを使用したいという1つの入力をしようとしています。エンドユーザーが国際電話番号を入力することを指定するチェックボックスをクリックした場合、マスクを削除します。

私は複数の方法を試しましたが、これまでのところ成功していません。現在のプロジェクトでは、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のクリックイベントで何を試しても、マスクは削除されません。

どんな助けでも大歓迎です。

4

8 に答える 8

30

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

$("#OfficePhone").unmask();
于 2010-12-03T19:11:01.727 に答える
20

私はそれを機能させるためのコードを理解することができました。以下は私が現在使用しているコードです。

<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>
于 2010-04-05T20:13:29.463 に答える
3

私は同じ問題に遭遇しました、そして私を助けたのは:

    var maskedInput = $("#id").data('mask');
    if (maskedInput) {
        maskedInput.remove();
    }
于 2015-01-06T07:15:49.090 に答える
3

入力マスクを削除します。

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

また

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

また

Inputmask.remove(document.getElementById(selector));
于 2017-03-08T08:34:08.720 に答える
2

:checkedチェックの代わりに使ってみてattrください、それが問題だと思います。$('#InternationalOfficePhone').is(':checked')if条件での使用を意味します。

于 2010-04-05T19:23:49.527 に答える
2

jQuery MaskPluginv1.14.12を使用しています

私の場合、.unmask()マスクが最初に作成されたときに使用されたものとは異なるセレクターを使用していたため、は機能しませんでした。

たとえば、これが入力だったとしましょう。

<input type="text" class="someclass maskme" value="" name="somename" />

マスクは次のように作成されました。

$('.maskme').mask('0000');

次に、次のようにマスクを解除しようとしましたが、機能していませんでした。

$('.someclass').unmask();

次のように変更すると、期待どおりに機能しました。

$('.maskme').unmask();
于 2020-07-01T21:03:01.537 に答える
1

query.maskedinput.jsバージョン:1.4.1を使用しています

マスキング解除はによって行われます

$("input").blur(function() {
    $("#info").html("Unmasked value: " + $(this).mask());
});

マスキングの例は

$("#pannumber").mask("aaaaa 9999 a");

マスキング解除

$("#pannumber").blur(function() { 
    var pannumber=  $(this).mask() ;
});
于 2017-07-13T08:37:58.090 に答える
0

inputmask jsバージョン:5.0.2を使用しています。

&マスキングとアンマスキングのために以下のテクニックを使用しています

$("#mailPhone").mask('(999) 999-9999'); //masking.

または

$('#mailPhone').inputmask('(999) 999-9999') //masking.

$('#mailPhone').inputmask("remove");  //unmasking.
于 2021-07-28T07:26:28.350 に答える