在ASP.Net电话面膜(Phone Mask in ASP.Net)

2019-11-03 23:37发布

我在做一个ASP.Net应用程序,我需要使用手机屏蔽输入文本框。 我使用jQuery和它不工作。

Asp.net:

<asp:TextBox runat="server" ID="txtCelular" CssClass="w240 placeholder"></asp:TextBox>

JavaScript的:

    <script src="\scripts\jquery-1.7.2.js" type="text/javascript"></script>
<script type="text/javascript">
    $("#txtCelular").mask("(999) 9999-9999?9");


    $("#txtCelular").on("blur", function () {
        var last = $(this).val().substr($(this).val().indexOf("-") + 1);

        if (last.length == 5) {
            var move = $(this).val().substr($(this).val().indexOf("-") + 1, 1);

            var lastfour = last.substr(1, 4);

            var first = $(this).val().substr(0, 9);

            $(this).val(first + move + '-' + lastfour);
        }
    });
</script>

Answer 1:

你必须保持你的服务器上的元素指定的ID,默认情况下心态,是不是在客户端上使用的ID。 而且,由于JavaScript中的客户机上运行,​​那么它没有得到,因为ID不匹配的正确元素。 你有多种选择。 当他们开始使用母版页,模板控件或用户控件(的.ascx)这往往绊倒了新的Web窗体开发人员。


更改客户端ID模式的方法

您可以更改的ClientIDMode为元素(这也可以在页面或web.config中的水平完成)。

<asp:TextBox runat="server" ID="txtCelular" ClientIdMode="static" CssClass="w240 placeholder" />

嵌入客户端ID的方法

您可以嵌入在JavaScript客户端ID,只要你的JavaScript是直接在Web窗体页或控制。

$("#<%= txtCelular.ClientId %>").mask("(999) 9999-9999?9");

使用一个类的方法

或在某些情况下(这是一个很好的候选人),一类更有意义。

<asp:TextBox runat="server" ID="txtCelular" CssClass="w240 placeholder phonemask" />

$(".phonemask").mask("(999) 9999-9999?9");


文章来源: Phone Mask in ASP.Net