Я hava приложение ASP.NET Web Forms.Отключить кнопку, помещенную внутри шаблона ASP.NET при щелчке по Javascript
Моя цель - отключить кнопку отправки btnFinish
при щелчке пользователя, чтобы избежать нескольких отправлений.
<asp:Button ID="btnFinish" runat="server" Text="Finish" UseSubmitBehavior="false"
CausesValidation="true" CommandName="MoveComplete" CssClass="buttonStyle"/>
функция Javascript является:
function Validate(btnFinishId) {
btnObj = document.getElementById(btnFinishId)
if (Page_IsValid) {
btnObj.disabled = true
}
else {
alert('Page has some validation error');
}
// this is to prevent the actual submit
e.preventDefault();
return false;
};
btnFinish
помещается в FinishNavigationTemplate
в ASP.NET Wizard Control. Поэтому для того, чтобы избежать ошибок во время выполнения, мне нужно, чтобы получить ClientID
элемента управления программными средствами, а затем добавить его в OnClientClick
случае кнопки:
Button btFinish = MyWizard.FindControl("FinishNavigationTemplateContainerID$btnFinish") as Button;
if (btFinish != null){
btFinish.Attributes.Add("onclientclick", "Validate('" + btFinish.ClientID + "');");
}
Но это не работает. Я использую Firebug, чтобы проверить страницу, отображаемую браузером, но хотя исходный код выглядит идеально, после нажатия кнопки Javascript функция не выполнена.
Если в функции Javascript заменяю Validate(btnFinishId)
с Validate()
и вместо того, чтобы использовать код позади, чтобы добавить OnClientClick
я пишу:
<asp:Button OnClientClick="Validate();" "ID="btnFinish" runat="server" Text="Finish" UseSubmitBehavior="false"
CausesValidation="true" CommandName="MoveComplete" CssClass="buttonStyle"/>
Функция выполняется, но, конечно, не делать то, что я хочу , потому что отсутствует идентификатор кнопки. У кого-нибудь есть решение?
Спасибо! Он отлично работает! Однажды я потерял возможность найти решение! Я обычно использую MVC и jQuery, поэтому, когда мне приходится изменять ASP.NET Web Forms с помощью Javascript, я действительно расстраиваюсь! – CiccioMiami
Без проблем! Рад, что у вас это работает :) –