ページにデフォルトで米国の電話番号マスクを設定したい入力を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のクリックイベントで何を試しても、マスクは削除されません。
どんな助けでも大歓迎です。
私はそれを機能させるためにコードを理解することができました。以下は、私が現在使用しているコードです。
<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();
}
attr
チェックの代わりに_:checked
_を使用してみてください、それが問題だと思います。つまり、if条件で$('#InternationalOfficePhone').is(':checked')
を使用します。
入力マスクを削除します。
$(selector).inputmask('remove');
または
var input = document.getElementById(selector);
if (input.inputmask)
input.inputmask.remove()
または
Inputmask.remove(document.getElementById(selector));
私はquery.maskedinput.jsバージョンを使用しています:1.4.1参照しました https://github.com/digitalBush/jquery.maskedinput/blob/bb66bf9b1c3eddd1d2349cee103127ae08d0a877/demo/index.html
マスク解除は$( "input")。blur(function(){$( "#info")。html( "Unmasked value:" + $(this).mask());によって行われます。
マスキングの例
$( "#pannumber")。mask( "aaaaa 9999 a");
マスキング解除
$( "#pannumber")。blur(function(){
var pannumber = $(this).mask();