2010-06-03 6 views
0

ASP.NET 체크 박스가 있는데, 게시하기 전에 일부 자바 스크립트를 실행하고 싶습니다.Javascript가 내 포스트 백을 비활성화합니다.

<asp:CheckBox ID="chkSelected" runat="server" AutoPostBack="True" OnCheckedChanged="chkSelected_CheckedChanged" /> 

하지만 사용자가이를 클릭 할 때 JS에 확인 대화 상자를 실행하려면, 그들이 그것을 선택을 취소 한 경우, 나는 그들이 확신하는 경우 그들에게, 그리고 것 :

뭔가 같은 그렇다면 다시 게시하고 내 서버 측 코드를 실행하십시오. 그들이 No라고 말하면 전혀 포스트 백하지 마십시오.

누구나 쉽게 할 수있는 방법을 알고 있습니까?

답변

2

당신은 onclick 핸들러를 추가 할 수 있습니다. jQuery를 사용
(가능성이있는 일을하기 위해) : 불행하게도

$('#<%=chkSelected.ClientID%>').click(function() { 
    return this.checked || confirm('Are you sure?'); 
}); 
+0

하지만 다시 게시 할 필요는 없습니다. 아니오를 클릭하면 아무 일도하지 않아야합니다. 예를 클릭하면 다시 게시가 발생하고 내 서버 사이드 'checked changed'이벤트를 실행해야합니다. 나는 그것이 onclick 메소드에서 '__doPostBack()'메소드를 필요로한다고 생각한다. – LoveMeSomeCode

+0

핸들러가 true를 반환하면 인라인 핸들러에서 포스트 백해야합니다. 시도 해봐. – SLaks

+0

옙 그랬어! 나는 왜 그런지에 대해 조금 혼란 스럽다. JS : if (! this.checked &&! confirm ('Are you sure?')) false를 반환; 그들이 예를 클릭하면 다시 게시가 발생하고 아니오를 클릭하면 다시 게시하지 않습니다. 내 JS : 확인을 반환합니다 ('정말입니까?'); 당신이 무엇을 선택하든 포스트 백이 결코 발생하지 않을 것입니다. 이유가 무엇인가요? 어느 방법 으로든지 고마워! – LoveMeSomeCode

0

확인란을 사용하지 않았지만 asp : CheckBox의 OnClientClick 특성이 있는지 확인해보십시오. 있다면, 거기에 자바 스크립트 함수의 이름을 넣어. 그런 다음 자바 스크립트에서 return true (포스트 백이 발생해야 함) 또는 return false (포스트 백을 취소하려는 경우)을 사용할 수 있습니다.

<asp:CheckBox ... onclick="if (!this.checked && !confirm('Are you sure?')) return false;" /> 

(나는이 작동합니다 생각하지만, 나는 그것을 시도하지 않았다)

또한 자바 스크립트에서 이벤트를 추가 할 수 있습니다

+0

을 더. 그건 Buttons, LinkButtons, ImageButtons 등등에 대한 것입니다. 내가 원한 것과 똑같이 작동하기 때문에 너무 나쁘다 ... – LoveMeSomeCode

+0

다른 옵션은 SLaks가 게시 한 JQuery 코드입니다. – ZippyV

관련 문제