DigitalBush jquery maskedinput类型错误

时间:2013-05-24 15:59:14

标签: javascript jquery typeerror maskedinput

我一直在靠墙碰头,所以说到这个。我正在使用这里找到的jquery.maskedinput插件:https://raw.github.com/digitalBush/jquery.maskedinput/1.3.1/dist/jquery.maskedinput.js注意:我纠正了第29行的语法错误。这里提到了这个问题:Why do I have a JavaScript parser error with this mask code?我读到了maskedinput.1.3和jquery.1.9存在一些可能的兼容性问题所以我使用了这里提供的迁移:http://jquery.com/download/回到旧版本只会产生更多错误。我遇到的问题是firefox抛出“TypeError:$(...)。mask不是一个函数,第21行。

Test.aspx文件

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="test.aspx.cs"
    Inherits="Test.test" %>
<!DOCTYPE html>
<html>
<head>

<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<link type="text/css" rel="stylesheet" href="styles.css" />
<link type="text/css" rel="stylesheet" href="css/jquery-ui-1.8.12.custom.css" />
<link type="text/css" rel="stylesheet" href="http://code.jquery.com/ui/1.10.2/themes/smoothness/jquery-ui.css" />
<script type="text/javascript" src="../Scripts/jquery-1.9.1.js"></script>
<script src="http://code.jquery.com/jquery-migrate-1.2.1.js"></script>
<script type="text/javascript" src="../Scripts/jquery.maskedinput.min.js"></script>

<%-- Begin Phone Validation Script  --%>
<script type="text/javascript">
    $(document).ready(function () {
        //Input Mask for landline phone number
        $("#<%=phone_num1.ClientID%>").mask("(999) 999-9999");
        $("#<%=phone_num2.ClientID%>").mask("(999) 999-9999");
    });
</script>
<%-- End of Phone Validation Script  --%>
</head>
<body onload="initialize()">
<form runat="server">
  <div id="consent-form-container">
        <div class="box">
            <table>
                <tr>
                    <td>
                        <asp:Label ID="Label14" runat="server" Text="Phone 1:"></asp:Label>
                    </td>
                    <td>
                       <asp:TextBox ID="phone_num1" runat="server" CssClass="client_home_ph"></asp:TextBox>
                        <asp:RequiredFieldValidator ID="phone_validation1" runat="server" ControlToValidate="phone_num1" ErrorMessage="*" Font-Bold="True" ForeColor="Red"></asp:RequiredFieldValidator>
                    </td>
                </tr>

                <tr>
                    <td>
                        <asp:Label ID="Label17" runat="server" Text="Phone 2:"></asp:Label>
                    </td>
                    <td>
                        <asp:TextBox ID="phone_num2" runat="server" CssClass="client_home_ph"></asp:TextBox>
                        <asp:RequiredFieldValidator ID="phone_validation2" runat="server" ControlToValidate="phone_num2" ErrorMessage="*" Font-Bold="True" ForeColor="Red"></asp:RequiredFieldValidator>
                    </td>
                </tr>
            </table>
        </div>
   </div>
</form>
</body>
</html>

jquery.maskedinput.js代码片断的代码片段

$.mask = {
//Predefined character definitions
definitions: {
    '9': "[0-9]",
    'a': "[A-Za-z]",
    '*': "[A-Za-z0-9]"
},
dataName: "rawMaskFn",
placeholder: '_'
};

有趣的是,我差不多一周前工作了,然后我添加了更多脚本,这就发生了哈哈。非常感谢任何帮助:)

1 个答案:

答案 0 :(得分:0)

好的,我终于明白了。以下是我解决这个问题的方法......

这很难并花了一些时间来调试这个,但基本上你必须使用旧版本的jquery并像这样升级

<script src="Scripts/jquery-1.4.4.min.js" type="text/javascript"></script>
<script src="http://code.jquery.com/jquery-1.9.0.js" type="text/javascript"></script>
<script src="http://code.jquery.com/jquery-migrate-1.2.1.js" type="text/javascript></script>

您调用“较旧的”jquery版本并通过插入1.9和迁移插件进行更新,如上所示。