'的jQuery'是未定义的,使用meiomask

时间:2014-07-01 21:46:19

标签: jquery meiomask

- 2014年7月1日 - 我有一个我正在VS 2012中工作的VS网站。无论是使用IE还是在VS中使用F5,我都会得到同样的错误:“'jQuery'未定义”。以下是调试器从SearchPosition.aspx突出显示的代码,指示异常:

(function($) {
    // call setMask function on the document.ready event
    $(function() {
        $('input:text').setMask();
    }); 
})(jQuery);

项目中还有一个包含SearchPosition.aspx的母版页,据我了解,母版页的内容应该由SearchPosition继承。

母版页包含以下代码:

<script language='javascript' type='text/javascript' src='<%# ResolveUrl("~/includes/js/meiomask.js") %>' charset="utf-8"></script>

我已经看到由于jQuery版本与IE冲突而引发此错误,但是当我使用IE8,IE11和Chrome时会发生这种情况。据说这个错误只发生在IE8及更早版本中。

我不确定如何评估ResolveUrl,但是在这个项目的“Includes”文件夹中有一个名为meiomask.js的文件。

非常感谢任何帮助。 感谢。

- 2014年7月2日 - 谢谢你的建议。

我尝试将推荐的行添加到母版页中:

<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

这导致了一个新错误:

Unhandled exception at line 20, column 8 in http://localhost:52629/Budget/

0x800a01b6 - JavaScript runtime error: Object doesn't support property or method 'setMask'

调试器突出显示了这一行:

 $('input:text').setMask();

我还尝试将SearchPosition.aspx中建议的脚本标记更改为:

<!-- <script language='javascript' type='text/javascript' src="~/includes/js/meiomask.js" charset="utf-8"></script> -->

...并且抛出了原始错误。旧版本的脚本标记重新出现在页面上的调试器中 标记为“SearchPosition.aspx [dynamic]”或“blank [dynamic]”(我尝试了几次此测试,并且页面名称交替显示)。

我应该提到我在一所大学工作,这个VS解决方案是由另一个合作机构捐赠给我们的,网站已经启动并运行。可能代码的工作原理是在他们的环境中传递给我。

另外,在我第一次遇到此错误后,昨天重新安装jQuery NuGet包v 2.1.1可能给自己造成了更多麻烦。之前我意识到项目中已经有一组包含的.js文件,我怀疑它是旧版本。在其他包含的.js文件中,我看到了jquery-1.2.6.min.js。

母版页还包含以下行:

<!-- <script language='javascript' type='text/javascript' src='<%# ResolveUrl("~/includes/js/jquery-1.2.6.min.js") %>'></script> -->

再次感谢。

- 2014年1月1日上午10:25 -

我对VS和.NET比较陌生(你能说出来吗?)但看了之后我认为问题可能就是母版页的呈现方式。以下是SearchPosition.aspx的第5-22行,它们出现在错误发生时的调试器中。请注意,scr =''。单引号之间不应该有什么东西吗?

</title><link href="includes/css/LSUStyle.css" rel="stylesheet" type="text/css" />
    <script language='javascript' type='text/javascript' src=''></script>
    <script language='javascript' type='text/javascript' src='' charset="utf-8"></script>
    <script language='javascript' type='text/javascript' src=''></script>

    <script language='javascript' type='text/javascript'>
    // meioMask options 
    (function($) {
        // call setMask function on the document.ready event
        $(
        function() {
            $('input:text').setMask();
        }
    ); })(jQuery);

    $.ajaxSetup({ cache: false }); 
    </script>

...以下是渲染前代码在母版页中的显示方式:

    <head runat="server">
    <title>Budget System (<%=GetCurrentInstance() %>)</title>
    <link href="~/includes/css/LSUStyle.css" rel="stylesheet" type="text/css" />
    <script language='javascript' type='text/javascript' src='<%# ResolveUrl("~/includes/js/jquery-1.2.6.min.js") %>'></script>
    <script language='javascript' type='text/javascript' src='<%# ResolveUrl("~/includes/js/meiomask.js") %>' charset="utf-8"></script>
    <script language='javascript' type='text/javascript' src='<%# ResolveUrl("~/includes/js/script.js") %>'></script>

    <script language='javascript' type='text/javascript'>
    // meioMask options 
    (function($) {
        // call setMask function on the document.ready event
        $(
        function() {
            $('input:text').setMask();
        }
    ); })(jQuery);

    $.ajaxSetup({ cache: false }); 
    </script>

2 个答案:

答案 0 :(得分:0)

确保您的母版页中引用了jquery。包括CDN,如下所示

<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

或从本地应用程序文件夹中引用jquery文件。

答案 1 :(得分:0)

有两个问题。第一个结果是我在我的帖子中提到的代码:

        <script language='javascript' type='text/javascript'  src="~/includes/js/meiomask.js" charset="utf-8">      
    // meioMask options 
    (function($) {
        // call setMask function on the document.ready event
        $(
        function() {
            $('input:text').setMask();
        }
    ); })(jQuery);

    $.ajaxSetup({ cache: false }); 
    </script>

......重复了一遍。它出现在Budget.Master.aspx和SearchPosition.aspx中。我在SearchPosition中注释掉了那个。第二个问题是ResolveURL无法正常工作。正如所建议的,我添加了&#34; src =&#34;进入包含函数调用的脚本标记。 jQuery运行没有错误。我仍然不知道为什么ResolveUrl不工作。

再次感谢您抽出宝贵时间。