Javascript Mask无法在移动设备上运行

时间:2016-11-04 01:59:51

标签: javascript jquery html asp.net mobile

  

我没有完美的英语,对任何错误都感到抱歉......

我使用的是我在互联网上提供的JS电话/手机屏蔽代码,当我使用计算机访问我的网站时它工作正常,但是当我使用手机时,代码停止工作。

这是JS代码:

<script type="text/javascript">
    function mascara(o, f) {
        v_obj = o
        v_fun = f
        setTimeout("execmascara()", 1)
    }
    function execmascara() {
        v_obj.value = v_fun(v_obj.value)
    }
    function mtel(v) {
        v = v.replace(/\D/g, "");
        v = v.replace(/^(\d{2})(\d)/g, "($1)$2");
        v = v.replace(/(\d)(\d{4})$/, "$1-$2");
        return v;
    }
    function id(el) {
        return document.getElementById(el);
    }
    window.onload = function () {

        id('<%= telefoneContato.ClientID %>').onkeypress = function () {
            mascara(this, mtel);
        }
    }
</script>

这是文字字段:

<asp:TextBox ID="telefoneContato" runat="server" CssClass="form-control" placeholder="Digite seu telefone" MaxLength="14"></asp:TextBox>

有些观点:

  • 我使用bootstrap + jQuery;
  • 该网页是一个网络表单,它链接到MasterPage;
  • 我正在使用ASP.NET;
  • 我对JS没有多少经验;
  • 手机是Moto G4(Android 6.0.1),我使用chrome访问网站。

提前致谢!

1 个答案:

答案 0 :(得分:0)

不幸的是,关键事件的行为在每个浏览器上都有所不同,特别是当涉及到移动浏览器时,它可能会非常烦人。尝试使用移动兼容的jQuery库,例如jQuery Mask。您将能够定义您的面具,如:

$(document).ready(function(){
    $('.phone').mask('0000-0000');
});