Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
单击asp.net母版页时的jQuery问题_Jquery_Asp.net - Fatal编程技术网

单击asp.net母版页时的jQuery问题

单击asp.net母版页时的jQuery问题,jquery,asp.net,Jquery,Asp.net,我的Jquery单击似乎没有按预期运行。正在找到控件,但下一行代码似乎正在执行。它似乎在到达警报前退出。我正在使用asp.net c#和母版页 chrome中的调试器中没有错误 客户JS文件加载到实际表单上 网络表单 <asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server"> <script src="Scripts/Site%20JS.js"></script&g

我的Jquery单击似乎没有按预期运行。正在找到控件,但下一行代码似乎正在执行。它似乎在到达警报前退出。我正在使用asp.net c#和母版页 chrome中的调试器中没有错误 客户JS文件加载到实际表单上

网络表单

  <asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
        <script src="Scripts/Site%20JS.js"></script>
    </asp:Content>
...
...

     <asp:Button ID="btn_save" runat="server" Text="Save" Width="108px" 
以下内容加载到母版页的页眉中

    <head runat="server">
        <meta charset="utf-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <title><%: Page.Title %> - My ASP.NET Application</title>

        <asp:PlaceHolder runat="server">
            <%: Scripts.Render("~/bundles/modernizr") %>
        </asp:PlaceHolder>
        <webopt:bundlereference runat="server" path="~/Content/css" />
        <link href="~/favicon.ico" rel="shortcut icon" type="image/x-icon" />

        <link href="Content/bootstrap.css" rel="stylesheet" />
        <link href="Content/datepicker.css" rel="stylesheet" />
        <link href="Content/Site.css" rel="stylesheet" />
        <link href="Content/datepicker3.css" rel="stylesheet" /> 
        <script src="Scripts/jquery-2.1.3.min.js"></script>
        <script src="Scripts/bootstrap.min.js"></script>
        <script src="Scripts/bootstrap-datepicker.js"></script>    
        <script src="Scripts/jquery.validate.min.js"></script>
        <script src="Scripts/modernizr-2.8.3.js"></script>    
 <asp:ContentPlaceHolder ID="Head" runat="server">
</asp:ContentPlaceHolder>

</head>

-我的ASP.NET应用程序

我怀疑您的代码没有找到按钮。使用母版页会导致呈现的html与实际编写的html不同。如果您使用的是.NET 4.0或更高版本,则可以在按钮中添加
ClientIDMode=Static
,以便在实际发送到客户端时呈现的ID相同

另外值得注意的是,如果jQuery代码位于脚本文件中,则使用

$(“”)。单击()将不起作用。只有在实际的.aspx页面中包含此代码时,客户端id才会替换服务器标记。在脚本文件中使用static作为客户端id是jQuery查找控件的最简单/最快的方法

如果您检查发出的html,您的按钮可能会有一个id,如
cphHead100$btn\u save
或类似的内容。您需要将设置为静态

<asp:Button ID="btn_save" runat="server" Text="Save" Width="108px"
    ClientIDMode="static" />

这将确保按钮以
id=“btn_save”

呈现,jQuery的“选择id以何处结尾”可以用作ClientMode的替代

$("[id$='btn_save']")

您的按钮名为
btn\u save
not
btnSave
original adjusted,这是一个打字错误,但仍然存在。如果您使用asp.net按钮控件,jQuery将在您传递按钮的实际客户端ID之前找不到它。在jQuery中使用以下命令:$(“#”)单击(。。。
$("[id$='btn_save']")