Asp.Net кнопка onclientclick проблема
Кажется, у меня странная проблема, которую я не знаю, как решить. У меня есть кнопка, как это:
<asp:Button ID="btnSave" runat="server" ClientIDMode="Static" Text="Save" OnClientClick="return ConfirmSave();" OnClick="btnSave_Click" />
Если я напишу свою клиентскую функцию следующим образом, она будет работать как положено:
function ConfirmSave()
{
return confirm('Confirm?');
}
Но я должен проверить внутри функции подтверждение результата, например:
function ConfirmSave()
{
if (Page_ClientValidate('validationGroup'))
{
var conf = confirm("Confirm?");
if (conf)
{
$('#btnSave').attr('disabled', 'disabled');
}
return conf;
}
else
return false;
}
При этом постбэк страницы, но событие щелчка на сервере не срабатывает.
Кто-нибудь может помочь? Спасибо
3 ответа
Да, она срабатывает, потому что кнопка вводится с типом отправки.
Возможно, у вас есть другая ошибка, возможно, дубликат вашего идентификатора кнопки на странице (потому что вы установили его в статическом режиме).
Проверьте, не дали ли вы еще раз btnSave, или проверьте, нет ли у вас ошибки JavaScript.
(После рендеринга вашей страницы в вашем браузере просмотрите исходный код вашей страницы и выполните поиск идентификатора btnSave, если он существует более одного раза).
Используйте тайм-аут, чтобы отключить кнопку сразу после завершения кода и отправки.
if (conf)
{
setTimeout( function() { $('#btnSave').attr('disabled', 'disabled') }, 0 );
}
Если в вашем коде есть метод с именем btnSave_Click(), то при повторной публикации он сначала попадет в ваш метод Page_load, а затем в этот метод. Если вы используете VB, вам понадобится метод с Handles btnSave_Click()
после этого.