2011-07-02 3 views
0
<asp:Button ID="RecoverButton" runat="server" Text="Recover" 
    OnClick="RecoverButton_OnClick" UseSubmitBehavior="false" /> 

알아 낸 종류의 UseSubmitBehavior="false"은 제공하고 있던 OnClientClick 기능을 덮어 씁니다. UseSubmitBehavior = "false"및 바인딩 OnClientClick?

나는이 다음에 갔다 :

$(document).ready(function() { 
    $("[id$=RecoverButton]").live("click", RecoverButton_OnClick); 
}); 

function RecoverButton_OnClick(s, e) { 
    var input = $("[id$=MasterUsername]").val(); 
    var valid = $dn.s.MailValidation(input); 

    if (!valid) { 
     // prevent postback here 
    } 
} 

하지만 내가 위로 발사에서 다시 게시 이벤트를 방지 할 수 방법을 모르겠어요. e.preventDefault()과 같은 작업을 시도했지만 아이디어가 작동하지 않습니까?

업데이트 것입니다 모두가 __doPostbackjQuery의 클릭 핸들러는 동시에 해고하는 것 (또는 어쩌면 ASP.NET의 화재 첫번째),하지만 난 내 RecoverButton 기능에 경고를 넣고 불을 지르고는 이미 표시 경고가있을 때 포스트 백이 발생하여 실행이 차단됩니다.

+0

아무 문제, 내 실수 : 나는 다음과 같은 더러운 코드를 사용하여 문제를 해결했다. – Aristos

+0

@Aristos 당신은 맞습니다.하지만이 특별한 문제에 대답하지 않았습니다. – bevacqua

답변

0

이 시도 :이 도움이

$(document).ready(function() { 
    $("[id='<%= RecoverButton.ClientID %>']").live("click", RecoverButton_OnClick); 
} 
    function RecoverButton_OnClick(event) { 
     var input = $("[id$=MasterUsername]").val(); 
     var valid = $dn.s.MailValidation(input); 
     if (!valid) { 
      return false; //This cancels the submit event 
     } 
    } 

희망을. 건배

+0

내 업데이트를 읽습니다. – bevacqua

+1

나는 이것이 오래된 것을 알고 있지만, .live는 더 이상 사용되지 않습니다. 대신'.on'을 사용하십시오. –

1

같은 문제가 발생했습니다.

if (!valid) { 

    //throw a exception to prevent _doPostBack method running. 
    var e = new Error(); 
    throw e; 
    } 
+0

jquery로 양식의 유효성을 검사하고 포스트 백 바로 앞에있는 단추를 비활성화 할 때 이것이 저에게 효과가있는 유일한 방법입니다. UseSubmitBehavior = false를 사용하면 "preventDefault()"함수가 작동하지 않습니다. – Flezcano

관련 문제