Ну, я намагаюся замаскувати поле номер телефону мого магазину magento. Я хочу використовувати маску "(599) 999 9999".
Якщо користувач вводить номер телефону правильно, я хочузніміть маску та обріжте ті пробіли та парантези, як "(532) 123 45 67" -> "5321234567". Якщо введення числа не завершено, функція маски автоматично очищає все поле введення, для мене це нормально, але якщо запис правильний, я хочу, щоб воно відображало поле без маски.
Я затримався на цьому кроці і не можу виконати вимоги мого спеціального модуля доставки. Будь-яка допомога була б чудовою.
Ось посилання JSFiddle: http://jsfiddle.net/KKhKV/4/
HTML:
<input type="text" name="billing[telephone]" value="" title="<?php echo $this->__("Telephone") ?>" class="input-text" id="billing:telephone" />
<input type="text" id="sec" />
JavaScript:
var mask = "(599) 999 9999";
//jQuery("#billing\:telephone").mask(mask);
jQuery("#billing\:telephone").focus(function () {
jQuery("#billing\:telephone").val("");
jQuery("#billing\:telephone").mask(mask);
jQuery("#billing\:telephone").val("(5");
})
.blur(function () {
jQuery("#billing\:telephone").unmask(mask);
var a = jQuery("#billing\:telephone").val();
var reg = new RegExp(" ","g");
a = a.replace(reg,"");
a = a.replace("(","");
a = a.replace(")","");
//jQuery("#billing\:telephone").val(a); THIS DOES NOT WORK
jQuery("#sec").val(a); // THIS WORKS NICE
});
Відповіді:
0 для відповіді № 1Встановлення тайм-ауту всередині розмиття, здається, працює:
.blur(function () {
setTimeout(function () {
jQuery("#billing\:telephone").val(a);
}, 1);
});
Я б швидше захопив пастку change
подія для оновлення значення.