ASP.NET上的Jquery掩码无法正常工作

时间:2015-07-28 20:27:52

标签: javascript c# jquery asp.net

我想应用我从http://digitalbush.com/projects/masked-input-plugin/获得的面具,但面具不起作用。这是我的代码:

<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
     <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js" type="text/javascript"></script>
        <script src="/Scripts/jquery.maskedinput.js" type="text/javascript"></script>
        <script type="text/javascript">
            jQuery(function ($) {
                $("#cnpjDate").mask("99/99/9999", { placeholder: "dd/mm/yyyy" });
                $("#date").mask("99/99/9999", { placeholder: "mm/dd/yyyy" });
                $("#phone").mask("(999) 999-9999");
                $("#tin").mask("99-9999999");
                $("#ssn").mask("999-99-9999");
            });

        </script>
</asp:Content>

我的输入字段是这样的

<input id="cnpjDate" type="text" /></td>

它位于View里面的一个表内,位于ContentTemplate里面的一个多视图内,位于UpdatePanel内。

我在这里做错了什么?

2 个答案:

答案 0 :(得分:0)

问题是masked-input-plugin正在使用jQuery中的.on函数,这在jQuery 1.4.2中是不可用的,你需要更新你的jQuery版本或降级masked-input-plugin。

还要确保在加载dom后运行jQuery函数:

$( document ).ready(function() {});

这是一个有效的codepen

答案 1 :(得分:0)

Since the update panel is getting loaded via ajax, the Jquery methods are not binding to the DOM elements. To resolve this bind the methods on a dom element that is higher up and not getting loaded via ajax.

Try this script:

top