【问题标题】:jQuery Masked Input | Can't remove mask after correct entry to the phone number fieldjQuery 屏蔽输入 |正确输入电话号码字段后无法移除掩码
【发布时间】:2014-01-26 16:37:52
【问题描述】:

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

【问题讨论】:

    标签: javascript jquery magento masking maskedinput


    【解决方案1】:

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

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

    Demo

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

    【讨论】:

    • 非常感谢您的帮助!我将其更改为更改事件并进行了一些修改。它工作得很好。 jsfiddle.net/qhzr5
    猜你喜欢
    • 1970-01-01
    • 2017-08-25
    • 2015-07-29
    • 2016-10-14
    • 2020-06-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多