2011-11-19 4 views
0

페이지에 asp.net 단추 컨트롤이 있습니다.jQuery 대화 단추를 클릭 할 때 포스트 백을 수행합니다.

<asp:Button ID="btnFinishReceiving" runat="server" Text="Finished Receiving" Width="168px" 
            OnClick="btnFinishReceiving_Click" /> 

클릭하면 대화 상자가 열립니다.

$("#<%= btnFinishReceiving.ClientID %>").click(function() { 
      $("[id*='ConfirmDialog']").dialog('open'); 

     }); 

$(document).ready(function() { 
    $("[id*='ConfirmDialog']").dialog({ 
      autoOpen: false, 
      width: 600, 
      buttons: { 
       "Yes": function() { 
        return true; 
       }, 
       "No": function() { 
        return ValidateClientInfo(); 
       } 
      } 
     }); 
    }); 

문제는 다음과 같습니다 최대한 빨리 버튼을 클릭 같은 대화 상자가 와서 페이지가 포스트 백을 얻었다. 사용자가 대화 상자의 버튼을 클릭하면 페이지를 다시 게시하고 싶습니다.

답변

2

양식의 "onSubmit"함수가 false를 반환했습니다.

업데이트 : 확실히 알아 보려면 event.preventDefault(); 또한 양식 제출과 같은 그 당시의 모든 기본 동작을 중지합니다.

+0

이 작동하지 않습니다 - 문제는이 방출을 닷넷 자바 스크립트입니다. – Hogan

0

asp : button의 onClick 기능은 JavaScript onClick과 동시에 호출됩니다.

0

@Matt가 맞으면 asp.net 버튼에 첨부 된 js 기능을 수정해야합니다.

$("#<%= btnFinishReceiving.ClientID %>").click(function(evt) { 
    $("[id*='ConfirmDialog']").dialog('open'); 
    evt.preventDefault(); 
}); 

이 즉시 게시되지 않도록해야한다, 어쨌든 나는이 방법은 여러분의 기대에 도달 할 것이라고 생각 다음이 "true를 반환;" "예"버튼의 기능 내에서 asp.Button에 의해 제공된 원래의 다시 게시 기능을 향상시키지 않습니다.

더 나은 설명을 보려면 this answer을보십시오 (리피터에서 사용되는 사실을 무시하면 동일한 접근 방식을 사용할 수 있습니다).

0

마크 업 :

<asp:Button ID="btnFinishReceiving" runat="server" Text="Finished Receiving" Width="168px" 
OnClick="btnFinishReceiving_Click" OnClientClick="return openDialog();" /> 

JS :

function openDialog() { 
    $("[id*='ConfirmDialog']").dialog('open'); 
    return false; 
} 
관련 문제