電話番号フィールドに、米国、カナダ(xxx)xxx-xxxxの形式で電話番号フィールドをあらかじめ入力しようとしています。残りの国では+ xxxxxxxとして問題が発生します。 Jqueryオブジェクトが以前の値を保持しているので、ロジックは動作していないようです。
$(document).ready(function($) {
$('#country').on('change', function() {
if (this.value == 'US' || this.value == 'CA') {
$('#C_BusPhone')
.keydown(function(e) {
var key = e.charCode || e.keyCode || 0;
$phone = $(this);
if (key !== 8 && key !== 9) {
if ($phone.val().length === 4) {
$phone.val($phone.val() + ')');
}
if ($phone.val().length === 5) {
$phone.val($phone.val() + ' ');
}
if ($phone.val().length === 9) {
$phone.val($phone.val() + '-');
}
}
return (key == 8 ||
key == 9 ||
key == 46 ||
(key >= 48 && key <= 57) ||
(key >= 96 && key <= 105));
})
.bind('focus click', function() {
$phone = $(this);
if ($phone.val().length === 0) {
$phone.val('(');
} else {
var val = $phone.val();
$phone.val('').val(val);
}
})
.blur(function() {
$phone = $(this);
if ($phone.val() === '(') {
$phone.val('');
}
});
} else {
$('#C_BusPhone')
.keydown(function(e) {
if ($(this).val().indexOf("+") === -1) {
$(this).val("+" + $(this).val());
}
})
}
});
});
あなたは( '.bind同じコード、'で.bind() 'と' .onを() 'することはできません)が' '古い廃止予定のバージョンのためのものであり、 .on() 'は新しい方法です。私はどちらのバージョンでも –
を動作させることはできないと思いますし、' var $ phone = $(this); ' –
問題は最初に正しく動作するのですが、ドロップダウンの値を変更して、前のドロップダウン先の国のプレフィックスを保持している情報を再入力しようとしました – temperature