好吧,我正试图屏蔽我的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 :(得分:0)
在模糊中设置超时似乎有效:
.blur(function () {
setTimeout(function () {
jQuery("#billing\\:telephone").val(a);
}, 1);
});
我宁愿捕获change
事件来更新值。