이것은 많은 포럼에서 되풀이되는 질문이며 작동하는 솔루션이 있지만 추한 것입니다. 양식을 두 번 제출하지 못하게하려면 클릭 한 후에 버튼을 비활성화해야합니다. 나는 css 클래스를 변경하여 이미지를 비활성화하고 희미하게 만듭니다.서버 및 클라이언트 컨트롤, 이벤트 처리 처리
자바 스크립트는 litteral과 generated 부분으로 구성되어 있으며 클라이언트 측 ID와 서버 측 코드가 혼합되어 있기 때문에 동일한 기능을하는 3 가지 기능이 있습니다. 3 버튼 모두에서 작동하는 하나의 기능을 가질 수있는 방법이 있습니까? 당신의 자바 스크립트의 일부를 생성 매개 변수 또는 무언가로 ID를 취할 수있는 자바 스크립트 함수를 작성하는 대신
<asp:ImageButton ID="btnSubmit" runat="server"
OnClientClick="doSubmitAndDisable();" OnClick="btnSubmit_Click"/>
<asp:ImageButton ID="btnSubmitMore" runat="server"
OnClientClick="doSubmitNextAndDisable();" OnClick="btnSubmitMore_Click"/>
<asp:ImageButton ID="btnSubmitNext" runat="server"
OnClientClick="doSubmitMoreAndDisable();" OnClick="btnSubmitNext_Click"/>
<script type="text/javascript">
function doSubmitAndDisable() {
if (typeof(Page_ClientValidate) == 'function' && Page_ClientValidate() == false){
return false;
}
document.all.<%= btnSubmit.ClientID%>.className = 'disabled';
document.all.<%= btnSubmitNext.ClientID%>.className = 'disabled';
document.all.<%= btnSubmitMore.ClientID%>.className = 'disabled';
<%= ClientScript.GetPostBackEventReference(btnSubmit, string.Empty) %>;
}
function doSubmitNextAndDisable() {
if (typeof(Page_ClientValidate) == 'function' && Page_ClientValidate() == false){
return false;
}
document.all.<%= btnSubmit.ClientID%>.className = 'disabled';
document.all.<%= btnSubmitNext.ClientID%>.className = 'disabled';
document.all.<%= btnSubmitMore.ClientID%>.className = 'disabled';
<%= ClientScript.GetPostBackEventReference(btnSubmitNext, string.Empty) %>;
}
function doSubmitMoreAndDisable() {
if (typeof(Page_ClientValidate) == 'function' && Page_ClientValidate() == false){
return false;
}
document.all.<%= btnSubmit.ClientID%>.className = 'disabled';
document.all.<%= btnSubmitNext.ClientID%>.className = 'disabled';
document.all.<%= btnSubmitMore.ClientID%>.className = 'disabled';
<%= ClientScript.GetPostBackEventReference(btnSubmitMore, string.Empty) %>;
}
</script>
링크를 고맙게 생각하지만, 알 수 있듯이 클릭 한 컨트롤뿐만 아니라 사소한 것도 비활성화해야합니다. – cdonner