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() после этого.

Другие вопросы по тегам