/ / jQuery Масковане введення | Не вдалося зняти маску після правильного введення в поле номера телефону - javascript, jquery, magento, маскування, масковане введення

jQuery маска введення | Неможливо видалити маску після правильного вводу в поле номера телефону - javascript, jquery, magento, masking, maskedinput

Ну, я намагаюся замаскувати поле номер телефону мого магазину 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 подія для оновлення значення.