/ / jQuery Maskowane wejście | Nie można usunąć maski po poprawnym wpisaniu w polu numeru telefonu - javascript, jquery, magento, masking, maskedinput

jQuery Masked Input | Nie można usunąć maski po poprawnym wprowadzeniu do pola numeru telefonu - javascript, jquery, magento, masking, maskedinput

Cóż, próbuję zamaskować pole numeru telefonu komórkowego w moim sklepie Magento. Maska, której chcę użyć, to „(599) 999 9999”.

Jeśli użytkownik poprawnie wprowadzi numer telefonu, chcęusuń maskę i przytnij te białe spacje i nawiasy, takie jak „(532) 123 45 67” -> „5321234567”. Jeśli wpisanie numeru nie jest zakończone, funkcja maski automatycznie usuwa wszystkie pola wprowadzania, więc jest dla mnie ok, ale jeśli wpis jest poprawny, chcę, aby wyświetlało pole bez maski.

Utknąłem na tym etapie i nie mogę spełnić wymagań mojego niestandardowego modułu wysyłkowego. Każda pomoc byłaby świetna.

Oto link 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
});

Odpowiedzi:

0 dla odpowiedzi № 1

Wydaje się, że ustawienie limitu czasu wewnątrz rozmycia działa:

.blur(function () {
setTimeout(function () {
jQuery("#billing\:telephone").val(a);
}, 1);
});

Próbny

Wolałbym złapać w pułapkę change zdarzenie, aby zaktualizować wartość.