업데이트중인 페이지에 대한 제출 버튼을 두 번 클릭하지 못하게하려고합니다. 문제는 서버 측 유효성 검사가 수행되어야 사용자가 계속 업데이트하기 전에 업데이트를 수행해야하는지 결정해야한다는 것입니다. 현재 내 양식에 대한 제출 이벤트에 다음 코드가 있습니다.서버 측 유효성 검사를 통한 더블 클릭 방지
<asp:Button ID="SubmitPayment" runat="server" OnClientClick="this.disabled='true';" UseSubmitBehavior="false" OnClick="SubmitPayment_Click" Text="Submit" />
페이지가 유효성 검사를 통과하지 못하는 곳이 문제가됩니다. 이 인스턴스에서 버튼을 활성화하려고 시도한 모든 것이 실패했습니다. 제출 버튼이 비활성화 된 상태에서 수정 된 정보를 다시 제출하기가 어렵습니다. 다시 유효하게하는 유효성 검사가 끝나면 다음 두 가지 방법을 모두 시도했습니다.
SubmitPayment.Enabled = true;
SubmitPayment.Attributes.Add("disabled", "false);
이 컨트롤을 다시 사용하려면 어떻게해야합니까? 이것은 Visual Studio 2005에 있습니다. 미리 감사드립니다.
-edit- 내가 사용한 접근 방식은 다음과 같습니다. 비활성화 된 추가 유인 버튼을 추가하고 display CSS 속성을 none으로 설정했습니다. 그런 다음 제출 단추를 숨기고 OnClientClick 이벤트에서 미끼 단추를 표시하는 javascript를 사용했습니다. 마지막으로, 서버 측 메소드의 끝은 버튼의 CSS 속성을 업데이트하여 나중에 숨기거나 표시합니다.
코드 세그먼트는 다음과 같습니다. 덕분에 다시 도움
function PreventDoubleClick()
{
var sp = document.getElementById("SubmitPayment");
var db = document.getElementById("DecoyButton");
sp.style.display = "none";
db.style.display = "inline";
}
<asp:Button ID="SubmitPayment" runat="server" OnClientClick="javascript:PreventDoubleClick();" UseSubmitBehavior="false" OnClick="SubmitPayment_Click" Text="Submit" />
<asp:Button ID="DecoyButton" Enabled="false" runat="server" style="display:none;" Text="Please Wait..."/>
DecoyButton.Style.Add("display", "none");
SubmitPayment.Style.Add("display", "inline");
SubmitPayment.Attributes.Add ("disabled", "true"); 또는 SubmitPayment.Attributes.Remove ("disabled", "false"); 그 일을하지 않니? 호기심에 문제가 있습니다. 모든 것을 두 번 클릭하는 나쁜 사람에 대해해야 할 일 (틀림없이, 자신의 잘못이 아니라 데스크톱 인터페이스 디자이너의 잘못). – mcandre