jquery click事件在usercontrol中不起作用

时间:2015-02-17 16:14:14

标签: javascript c# jquery user-controls

我在usercontrol中有一个按钮和一些jquery javascript,点击回调不会调用。



<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="Login.ascx.cs" Inherits="TestApp2.Views.Login" %>
<script type="text/javascript">
    $(function () {
        $("#createBtn").click(function () {
            alert("message");
        });
    });

</script>
<asp:UpdatePanel ID="LoginMainUpdatePanel" runat="server" UpdateMode="Conditional" OnUnload="UpdatePanel_Unload">
    <ContentTemplate>
        <asp:TextBox ID="infoTB" runat="server" TextMode="MultiLine" />            
        <div>
            <div class="left-align" style="background-color:blue">
                <button id="createBtn" class="btn btn-default">Create</button></br>
                <button id="signinBtn" class="btn btn-default">Sign In</button>
            </div>
            <!-- Login View -->
            <div id="loginView" runat="server" class="centre-form centering text-center" style="background-color:green">
                <h1>Login</h1>
                <asp:Label ID="info" runat="server" Text="" />
                    
                <div class="form-group">
                    <label for="userIn">Username</label>
                    <asp:TextBox runat="server" id="userIn" CssClass="form-control" TextMode="SingleLine" />
                    <asp:RequiredFieldValidator runat="server" id="reqUser" controltovalidate="userIn" errormessage="Enter Username" />
                </div>
                <div class="form-group">
                    <label for="passwordIn">Password</label>
                    <asp:TextBox runat="server" id="passwordIn" CssClass="form-control" Text="Enter Password" TextMode="Password" />
                    <asp:RequiredFieldValidator runat="server" id="reqPass" controltovalidate="passwordIn" errormessage="Enter Password" />
                </div>
                <asp:Button runat="server" id="loginBtn" CssClass="btn btn-default" onclick="loginBtn_Click" text="Login" />
            </div>

            <!-- Create Account View -->
            <div id="createView" runat="server">

            </div> 

        </div>
    </ContentTemplate>
</asp:UpdatePanel>
&#13;
&#13;
&#13;

在usercontrol中使用JavaScript有何不同?使用updatepanel将此用户控件动态加载到主页中。

每当我按下按钮时,都会出现验证字段警告。

4 个答案:

答案 0 :(得分:0)

动态ID的可能情况

尝试使用

 $(function () {
        $('#<%= createBtn.ClientID %>').click(function () {
            alert("message");
        });
    });

或只需使用ClientIdMode="Static"作为按钮。

答案 1 :(得分:0)

我打赌你的更新面板会在某些事件后重新加载。每次UpdatePanel重新加载后,您需要将事件附加到新的UpdatePanel内容。你可以在pageLoad js函数中执行:

function pageLoad(sender, args) {
   $("#createBtn").click(function () {
      alert("message");
   });
}

答案 2 :(得分:0)

我认为您的usercontrol动态加载后需要委派事件的问题。试试吧。

$(document).ready(function(){
   $("body").delegate("#createBtn",'click', function () {
     alert("message");
   });
});

答案 3 :(得分:0)

我发现将javascript放在js文件中并在主页面中导入它。

我还在该文件中使用了pageLoad函数解决方案。