2012-03-10 2 views
0

* IE6 제한 버튼 한 번 클릭하십시오. *
나는 한 번 클릭해야하는 버튼이 있는데, 처음에는 클릭 할 때 몇 가지 백 엔드 로직 (작업)을 실행해야합니다 (예 : DB에 일부 데이터 저장, 이메일 전송, 일부 로깅 수행 후). 이 작업의 성공은 다른 페이지로 리디렉션해야합니다. 하지만 버튼의 클릭 이벤트 후IE6 제한 버튼 한 번 클릭

btnMakeFO.Visible = false ;

을 사용하고, 사용자는 여전히 두 배 이상 더 클릭 할 수 있습니다.

btnMakeFO.Enabled = false ;

하지만 너무 작동하지 않습니다 :
나는 또한을 사용했다.

가 나는 또한에서 다음을 사용하고 버튼의 (btnMakeFO_Click) 이벤트 처리기를 클릭

btnMakeFO.Attributes.Add("onclick", "this.disabled=true;" + Page.ClientScript.GetPostBackEventReference(btnMakeFO, "").ToString()); 

나는이 문제에 대해 많이 검색 한, 그러나 나는 내 문제에 맞춤형 솔루션을 찾을 수 없습니다입니다.
참고 : Windows 7 x64 비트 컴퓨터와 IE8에서 개발 중이며, 여기에는 최대 두 번 클릭합니다. FireFox8에서는 한 번만 클릭합니다.
생산 환경에서는 Windows 2003 Server, Internet Explorer 6이이 서버에서 버튼을 두 번 이상 클릭 할 수 있습니다. 즉, btnMakeFO 버튼을 약 10-15 회 연속 클릭 할 수 있습니다.
(이전 버전의 응용 프로그램이 최신 버전의 Internet Explorer에서 제대로 실행되지 않으므로 프로덕션 서버의 Internet Explorer 6을 업그레이드 할 수 없습니다.)
내일까지이 문제를 해결해야합니다. 당신의 이른시기에이 점에 대해 친절히 도와주세요.

답변

1

BTW 나는 (Code Project에서 찾은) 다음을 사용했으며,이 솔루션에 만족하고 있습니다.

<asp:Button OnClick="btnMakeFO_Click" OnClientClick="clickOnce(this, 'ABC...')"> 

<script type="text/javascript"> 
function clickOnce(btn, msg) 
{ 
    // Test if we are doing a validation 
    if (typeof(Page_ClientValidate) == 'function') 
    { 
     // if we are doing a validation, return if it's false 
     if (Page_ClientValidate() == false) 
     { 
      return false; 
     } 
    } 

    // Ensure that the button is not of type "submit" 
    if (btn.getAttribute('type') == 'button') 
    { 
     // The msg attibute is absolutely optional 
     // msg will be the text of the button while it's disabled 
     if (!msg || (msg='undefined')) 
     { 
      msg = 'Saving.......'; 
     } 
     btn.value = msg; 
     // The magic :D 
     btn.disabled = true; 
    } 
    return true; 
} 
</script> 
0

javascript 접근 방식이 효과적입니다.

도전적 일 수있는 서버 쪽에서 코드를 주입하고 있습니다. 브라우저에서 앱과 소스보기를 실행할 때도 결과를 볼 수 있어야합니다. 이 같은 태그에 자바 스크립트를 볼 수 : ASP.Net를 들어, 대신 당신의 페이지 코드 -에서 주입, 당신은 HTML에 직접 추가 할 수 OnClientClick 이벤트를 시도 할 수

<input type="submit" value="Submit" onclick="this.disabled=true" /> 

뒤에.

관련 문제