1

我有一个要求,我需要将输入掩码应用于移动网站中使用的表单中的文本框。

例如:我在我的移动网站中使用了以下表格,其中电话号码需要根据标签中给出的示例文本进行屏蔽。我尝试使用不使用 jquery 插件来使其正常工作,但我发现它在 web 中完美运行,但无法在移动浏览器中运行。

在此处输入图像描述

我在网上看到其中一条评论说移动浏览器不依赖于 keypress 和 keydown 事件。真的吗 ?

我尝试使用自己的代码来实现解决方案(代码如下)

    function formatPhone(e, node) {
    var keycode =  e.keyCode ? e.keyCode : e.which;
    if(keycode == 8){ // backspace
        return false;
    }
    if(keycode == 46){ // delete
        return false;
    } 
    var input = $(node).val();
    input = input.replace(/-/g, '');
    var areaCode = input.substring(0, 3);
    var exchange = input.substring(3, 6);
    var tail = input.substring(6);          
    $(node).val(areaCode + "-" + exchange + "-" + tail);                            

}
 $('#${PRE_ID}Phone').keyup(function (e) { formatPhone(e, this); });

上面的代码在网络浏览器中可以工作,但是在移动端前 3 位可以正常工作,但是第 4 和第 5 位交换并且数字序列总是失败。而且,当您删除否时,并非所有数字都被删除。

我们是否有任何来自 jquery 的插件或任何代码片段来完成这项工作?

以下是我在移动默认浏览器中为 S2、S3、iPhone 尝试过的一些插件(但失败了)

面具 | jQuery 插件注册表 http://andr-04.github.io/inputmask-multi/en.html http://www.jqwidgets.com/jquery-widgets-demo/demos/jqxmaskedinput/index.htm http://mavrin .github.io/maskInput/

先感谢您

4

1 回答 1

0

即使在移动设备上,这也对我有用:

$("#phoneInput").jqxMaskedInput({ width: 250, height: 25, mask: '-###-###-####'});

我已经将它与 iPhone 和 Nexus 一起使用。

于 2013-06-21T10:16:47.777 回答