0

好吧,我正在尝试掩盖我的 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
});
4

1 回答 1

0

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

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

演示

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

于 2014-01-26T16:49:18.670 回答