ASP.NET: обработчик событий OnServerClick, не названный при использовании onclick

У меня есть специфическая проблема здесь, и я не могу своей жизненной фигурой, каково решение. Обратите внимание, что следующий код динамично не создается, но просто сразу в моем aspx файл.

<button type="button" runat="server" id="btnSubmit"
  OnServerClick="btnSubmit_Click" onclick="return confirm('Sure?');">
    Submit
</button>

Это работает просто великолепно, пока я не имею onclick припишите там, т.е. OnServerClick обработчик запущен, как он должен. Но когда я использую onclick атрибут, который это не, неважно, подтверждаю ли я или уменьшаю диалоговое окно подтверждения.

Что я делаю неправильно?Спасибо

8
задан Mark 17 August 2012 в 06:19
поделиться

5 ответов

Если вы посмотрите на сгенерированный исходный код, вы увидите следующее:

onclick="return confirm('Sure?'); __doPostBack('btnSubmit','')"

так что происходит то, что _doPostBack никогда не вызывается. Хакерский способ сделать то, что вы ищете, выглядит следующим образом:

<button type="button" runat="server" id="btnSubmit"
  OnServerClick="btnSubmit_Click" onclick="if (confirm('Sure?')) ">

Настоящий правильный способ - использовать веб-контроль:

<asp:Button runat="server"
        OnClick="btnSubmit_Click" OnClientClick="return confirm('Sure?')" Text="Submit" />
15
ответ дан 5 December 2019 в 07:12
поделиться

Похоже, событие onclick не всплывает.

Вы должны просто иметь возможность использовать

OnClientClick="return confirm('Sure?');

Я не думаю, что другой onClick может быть необходим.

Изменить:

Этот метод потребует от вас вручную привязать вашу функцию к событию OnClick.


Я придумываю атрибуты сегодня утром, поэтому в тщетной попытке искупить себя-

Другой метод - вставить javascript, чтобы поймать событие. Что-то вроде ..

$("form").submit(function() {

        var resp = confirm("Save & Submit?");
        if (resp) {
            serializeStats();
            return true;
        }
        else {
            return false;
        }

    });

Я действительно помню, что существовал лучший встроенный способ сделать это. Время кофеина.

1
ответ дан 5 December 2019 в 07:12
поделиться

0
ответ дан 5 December 2019 в 07:12
поделиться

Как насчет изменения типа кнопки для отправки, она работает хорошо:

<button type="submit" runat="server" id="btnSubmit"
  OnServerClick="btnSubmit_Click" onclick="return confirm('Sure?');">
    Submit
</button>
1
ответ дан 5 December 2019 в 07:12
поделиться

У меня было больше успешно с

<asp:Button ID="btnSubmit" runat="server" Text="Save" UseSubmitBehaviour="false"
OnClick="btnSubmit_Click" OnClientClick="if (!confirm('Sure?')) return" />
3
ответ дан 5 December 2019 в 07:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: