Как запретить пользователям нажимать кнопку дважды? - PullRequest
44 голосов
/ 26 мая 2011

У меня есть старое приложение веб-форм ASP.NET (.NET 2.0), в котором при нажатии кнопки запускается примерно 30 секунд. Мне нужно, чтобы кнопка не была нажата дважды. Это предотвратит публикацию дважды, что приведет к дублированию данных в базе данных.

Я пытался добавить;

OnClientClick="this.disabled='true';"

, чтобы попытаться отключить кнопку в JavaScript. Однако, хотя кнопка становится отключенной, обратная передача для кнопки затем не работает.

Отключение кнопки для предотвращения многократных представлений является идеальным для этого приложения. Как я могу это сделать?

EDIT

Я не могу использовать сторонние элементы управления.

Ответы [ 14 ]

0 голосов
/ 24 августа 2015

Вы также можете скрыть кнопку или изменить ее для загрузки изображения, чтобы сохранить обратную связь

</p> <pre><code> $(document).on('submit','form',function (e) { $("input.SubmitButton").hide(); // or change if to an loading gif image. return true; });

0 голосов
/ 03 сентября 2013

После некоторого поиска я нашел это решение.

$('form').submit(function () {
    $('input[type=submit][data-loading]').addClass('disabled');

    if ($(this).data('submitted') == true) {
        $('input[type=submit][data-loading]').attr('disabled', 'disabled');
        return false;
    }

    $(this).data('submitted', true);
});

Проблема с решением UseDefaultBehavior заключается в том, что клавиша Enter перестает отправлять используемую форму.много.Я предполагаю, что значительный процент пользователей пытается войти вместо нажатия кнопки.

0 голосов
/ 01 марта 2013

Вот быстрое решение. Установите ширину 0, когда они нажимают на нее. Он все равно будет отправлен, но они не смогут щелкнуть его снова. Если вы хотите показать это снова в сценарии, что есть ошибка проверки, тогда вы можете установить Width обратно к его первоначальному значению в событии щелчка на стороне сервера.

OnClientClick="this.width=0;"
0 голосов
/ 26 мая 2011

Одна вещь, которую вы можете сделать, после нажатия на нее скрыть ее на стороне клиента и показать некоторые изображения загрузчика.

Или, если это форма или что-то, вы можете добавить recaptcha

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...