jQuery蒙面输入|正确输入电话号码字段后无法删除掩码

时间:2014-01-26 16:37:53

标签: 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
});

1 个答案:

答案 0 :(得分:0)

在模糊中设置超时似乎有效:

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

Demo

我宁愿捕获change事件来更新值。