我在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;
在usercontrol中使用JavaScript有何不同?使用updatepanel将此用户控件动态加载到主页中。
每当我按下按钮时,都会出现验证字段警告。
答案 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函数解决方案。