Избегайте одновременного нажатия кнопок в MVC - PullRequest
0 голосов
/ 11 сентября 2018

У меня есть веб-приложение MVC с двумя кнопками - Сохранить и Отправить.Когда пользователь впервые отправляет и одновременно нажимает кнопку Сохранить, как только он нажимает кнопку отправки, возникает ошибка в отправке данных.

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

Любые предложения о том, как я могу справиться с этим?

Спасибо

Ответы [ 3 ]

0 голосов
/ 11 сентября 2018

Вы можете сделать следующее:

  1. Иметь кнопку «Отправить» как кнопку «Отправить» (отображается в html как тип ввода = «отправить»)
  2. Иметь кнопку «Сохранить» как обычную кнопку.

Чтобы кнопка Сохранить отображалась как обычная кнопка (отображается как input type=“button”, вы можете иметь UseSubmitBehavior: False.

Затем вы можете использовать OnClientClick на одной из кнопок и предотвратитьнажатием другой кнопки. Здесь вы также можете проявить творческий подход. Вы можете отключить нажатую кнопку и показать «Сохранение ...», как показано ниже:

// its a button or document.getElementById
if (button.getAttribute('type') == 'button') {

button.disabled = true;
button.className = "inactive class";
button.value = "Saving, please wait. Have some peanuts while we save...";
0 голосов
/ 11 сентября 2018

Простое решение с помощью jQuery:

 $("[type='submit']").on("click", function (e) {

        // !!!IMPORTANT!!!
        e.preventDefault();

        var $self = $(this), $form = $self.closest("form");

        // Valid - before submit
        if ($form.valid()) {

            // Update text in button, ex: Sending..., Loading...
            $self.attr("disabled", "disabled").html("<i class='fa fa-spinner fa-pulse fa-lg fa-fw' aria-hidden='true'></i>Loading...");

            // Block all inputs.
            $form.find(":input:not([type=hidden])").attr("readonly", "readonly");

            // Submit form.
            $form[0].submit();
            return true;
        }
        // !!!IMPORTANT!!!
        return false;
    });
0 голосов
/ 11 сентября 2018

Попробуйте отключить кнопку Сохранить в коде кнопки отправки HTML onclick=" ... "

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