2015-02-17 3 views
0

У меня есть кнопка в usercontrol и jQuery jquery, вызов callback не будет звонить.событие jquery click не работает в usercontrol

<%@ 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>

Чем отличается при использовании JavaScript в UserControl? Этот usercontrol динамически загружается в основную страницу с помощью панели обновления.

Кроме того, всякий раз, когда я нажимаю кнопку, появляются предупреждения поля подтверждения.

+0

Попробуйте загрузить код JavaScript для JavaScript в $ (document) .ready (function() {}); – dowomenfart

+0

К сожалению, никаких изменений. – colobusgem

ответ

0

Я обнаружил, что создание javascript внутри js-файла и импорт его на главной странице сработало.

Я также использовал решение функции pageLoad в этом файле.

0

Возможный случай динамического идентификатора

Попробуйте использовать

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

или просто использовать ClientIdMode="Static" для вашей кнопки.

+0

не помогло, спасибо tho – colobusgem

0

Держу пари, ваша панель обновления перезагружается после некоторого события. После каждой перезагрузки UpdatePanel вам необходимо присоединить событие к новому содержимому UpdatePanel. Вы можете сделать это внутри Pageload функции расслоения плотным:

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

, который, похоже, не помог, спасибо в любом случае – colobusgem

0

Я думаю, что проблемы, так как ваш UserControl в настоящее время загружен динамически необходимо делегировать событие. Поэтому попробуйте это.

$(document).ready(function(){ 
    $("body").delegate("#createBtn",'click', function() { 
    alert("message"); 
    }); 
}); 
Смежные вопросы