Jquery不使用ASP.NET C#在Master Page中工作,并且在不使用母版页的情况下正常工作

时间:2015-05-17 15:40:31

标签: javascript c# jquery html asp.net

此代码在.aspx页面中正常工作没有问题。但如果我使用母版页,那么这里没有什么工作正常,我尝试将JQuery脚本放在母版页中,即使这样也没什么用。有没有必要在这里设置的东西。仍然没有得到为什么信息div没有加载计数。以下是链接

<script type="text/javascript" src="scripts/jquery-1.3.2-vsdoc2.js"></script>

我也参考了以下博客:

http://mwtech.blogspot.co.il/2009/04/2-ways-to-load-jquery-from-aspnet.html

MasterPage.master代码:

 <head runat="server">
<title></title>

   <script type="text/javascript" src="scripts/jquery-1.3.2-vsdoc2.js">          </script>



<asp:ContentPlaceHolder id="head" runat="server">
</asp:ContentPlaceHolder>

<form id="form1" runat="server">

 <div>
    <asp:ContentPlaceHolder id="ContentPlaceHolder1" runat="server">

    </asp:ContentPlaceHolder>
</div>

</form>

</body>

</html>

Default2.aspx代码

   

 <script type="text/javascript">

     var Editor1 = '#Editor1';
     var Editor1CountLimit = 50
     var Editor1InfoArea = '#Info';

     var Editor2 = '#Editor2';
     var Editor1InfoArea1 = '#Info1';

     $(document).ready(function () {
         TrackCharacterCount(Editor1, Editor1CountLimit, Editor1InfoArea);
         TrackCharacterCount(Editor2, Editor1CountLimit, Editor1InfoArea1);
     });

     function TrackCharacterCount(ctl, limit, info) {
         var editor = $(ctl).contents().find('iframe').eq(2);
         $(editor).load(function () {
             var txt = $(this).contents().find('body').text();
             $(info).html(txt.length); //set initial value 
             $(this).contents().keyup(function () {
                 var txt = $(this).contents().find('body').text();

                 if (txt.length > limit)
                     $(info).html(txt.length).css("color", "red");
                 else
                     $(info).html(txt.length).css("color", "");
             });
         });
     }

     function ValidateEditor1Length(source, args) {
         var editor = $(Editor1).contents().find('iframe').eq(2);
         var txt = editor.contents().find('body').text();
         var isValid = txt.length > 0 && txt.length <= Editor1CountLimit;
         args.IsValid = isValid;
     }


     function ValidateEditor1Length1(source, args) {
         var editor = $(Editor2).contents().find('iframe').eq(2);
         var txt = editor.contents().find('body').text();
         var isValid = txt.length > 0 && txt.length <= Editor1CountLimit;
         args.IsValid = isValid;
     }

</script> 


      <asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<div>

            <div id="Info">Info</div>

  <%--  <cc1:Editor ID="Editor1" runat="server" />--%>
    <cc1:Editor ID="Editor1" runat="server" />
    <asp:CustomValidator ID="CustomValidator1" runat="server" ControlToValidate="Editor1" ClientValidationFunction="ValidateEditor1Length" ErrorMessage="Exceeded Character Limit"></asp:CustomValidator>


   <div id="Info1">Info</div>
   <%-- <cc1:Editor ID="Editor2" runat="server" />--%>
    <cc1:Editor ID="Editor2" runat="server" />
    <asp:CustomValidator ID="CustomValidator2" runat="server" ControlToValidate="Editor2" ClientValidationFunction="ValidateEditor1Length1" ErrorMessage="Exceeded Character Limit"></asp:CustomValidator>

</div>
<asp:Button ID="Button1" runat="server" Text="Button" />

谢谢。

3 个答案:

答案 0 :(得分:0)

是否正在下载js文件?在开发人员工具(F12)下使用网络也要检查。另请在最终页面的HTML中查看控件的ID实际上是您在脚本中使用的控件的ID。

答案 1 :(得分:0)

尝试将您的Jquery引用更改为:

<script type="text/javascript" src="<%= Page.ResolveClientUrl("~/scripts/jquery-1.3.2-vsdoc2.js") %>"></script>

答案 2 :(得分:0)

我有同样的问题。在浏览器客户端中查看输出源代码时,我注意到所有“ID”都被修改为ContentPlaceHolderID作为id本身之前的前缀,因此Id的jQuery正在寻找不再存在。

解决方案是在子页面的“内容部分”中包含参数ClientIDMode =“Static”,因此id对象在内容页面上保持不变,jQuery可以通过原始id找到它。

希望它有所帮助。