2011-06-10 6 views
0

heisenbug가 있습니다 - Firebug 중단 점을 넣을 때 작동하지만 중단 점 없이는 작동하지 않습니다.jQuery 제출 Heisenbug

LoginSubmit 함수가 내 코드의 두 위치에서 호출됩니다. 한 인스턴스에서 btnLoginSubmit_Click 이벤트가 성공적으로 실행되었지만 다른 인스턴스에서는 $ submitButton.click()에 중단 점을 설정하지 않으면 이벤트가 실행되지 않습니다. 선. 페이지 뒤에

function LoginSubmit() { 
    $("#diagnostics").text(""); 
    var $submitButton = $("#<%=btnLoginSubmit.ClientID %>"); 
    $submitButton.click(); // <-- This is the line of code that is not executing. 
    $("#diagnostics").text("LoginSubmit failed to submit postback. "); 
} 

    <asp:Button ID="btnLoginSubmit" runat="server" Text="Submit" CssClass="hiddenButton" 
     OnClick="btnLoginSubmit_Click" OnClientClick="return true;" Visible="true" /> 

코드 :

protected void btnLoginSubmit_Click(object sender, EventArgs e) 
    { 
.... 
    } 
+0

은 동일한 버튼 또는 두 개의 다른 버튼에서 두 번 호출되는 함수입니까? 두 개의 서로 다른 버튼이있는 경우 둘 다 id id = "btnLoginSubmit"입니까? 그게 문제가 될 수 있을까요? – daybreaker

+0

문서를로드 한 후 LoginSubmit을 호출 하시겠습니까? – Chandu

+0

사용자 상호 작용으로 인해 LoginSubmit_Click 함수를 호출하는 두 위치가 모두 있습니까? 아니면 아마도 다른 자바 스크립트에서 호출이 실패 하나입니까? – ExCodeCowboy

답변

0

가 PostBackEventHandler를 등록하는 대신 버튼

public partial class ScheduleEdit : System.Web.UI.Page, 
     System.Web.UI.IPostBackEventHandler 
    { 
     protected void Page_Init(object sender, EventArgs e) 
     { 
      var postBack = Page.ClientScript.GetPostBackEventReference(this, null); 

      var script = "function postback() { " + postBack + "; }"; 

      Page.ClientScript.RegisterStartupScript(GetType(), this.UniqueID, script, true); 
     } 

     // this is called via the client side 'postback' script 
     public void RaisePostBackEvent(string eventArgument) 
     { 
      DoStuff(); 
     } 
    } 


    // client side script: 
    $("#DP").datepicker({ 
     onSelect: function (dateText, inst) { postback(); }, 
    }); 
0

문제의 OnClick을 발사 고려는 대화 상자를 포함 jQuery를에 문제가있었습니다. 제출을하기 전에 대화 상자를 닫았을 때 작동했습니다.