Snažím sa maskovať číslo mobilného telefónu v mojom obchode Magento. Maska, ktorú chcem použiť, je „(599) 999 9999“.
Ak používateľ zadá správne telefónne číslo, chcemodstráňte masku a orezajte tie medzery a parantézy, ako napríklad „(532) 123 45 67“ -> „5321234567“. Ak nie je zadanie čísla úplné, funkcia masky automaticky vymaže všetky vstupné polia, takže je to pre mňa v poriadku, ale ak je zadanie správne, chcem, aby sa zobrazilo pole bez masky.
Som zaseknutý v tomto kroku a nemôžem dokončiť požiadavky na môj vlastný prepravný modul. Akákoľvek pomoc by bola skvelá.
Tu je odkaz 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
});
odpovede:
0 pre odpoveď č. 1Zdá sa, že nastavenie časového limitu v rozostrení funguje:
.blur(function () {
setTimeout(function () {
jQuery("#billing\:telephone").val(a);
}, 1);
});
Radšej by som chytil change
udalosť na aktualizáciu hodnoty.