Почему моя форма не отправляет, когда я отключаю кнопку отправки для предотвращения двойного щелчка?

Разобрался. Конфигурация lint должна быть отдельным правилом в webpack config. Например

...
module: {
    rules: [
      {
        test: /\.tsx?$/,
        enforce: 'pre',
        use: [
            {
                loader: 'tslint-loader',
                options: { /* Loader options go here */ }
            }
        ],
        exclude: /node_modules/
      }, {
        test: /\.tsx?$/,
        use: ['ts-loader'],
        exclude: /node_modules/
      }
    ]
}
...
8
задан Community 23 May 2017 в 11:48
поделиться

8 ответов

Я думаю, что Вы просто пропускаете этот тег:

UseSubmitBehavior="false"

Попробуйте его как это:

<asp:Button ID="btnUpdate" runat="server" UseSubmitBehavior="false" OnClientClick="if(Page_ClientValidate()) { this.disabled = true; } else {return false;}" Text = "Update" CssClass="button" OnClick="btnUpdate_Click" ValidationGroup="vgNew"/>

Объяснение

9
ответ дан 5 December 2019 в 05:57
поделиться

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

6
ответ дан 5 December 2019 в 05:57
поделиться

"Отключение" средств управления HTML не всегда производит последовательное поведение во всех главных браузерах. Таким образом, я пытаюсь избегать выполнения этого на клиентском, потому что (работающий с моделью ASP.NET) необходимо отслеживать состояние элемента на клиенте и сервере в этом случае.

То, что я сделал бы, переместить кнопку от видимой части окна путем переключения имени класса кнопки на класс CSS, который содержит следующее:

.hiddenButton
{
  position: absolute;
  top: -1000px;
  left: -1000px;
}

Теперь, что поместить вместо кнопки?

  1. Любой изображение, которое похоже на отключенную кнопку
  2. Или просто текст, в котором говорится, "Ожидает..."

И это может быть сделано тот же путь, но наоборот. Запустите с элемента, скрытого при загрузке страницы, и затем переключитесь на видимое имя класса на форме, отправляют.

4
ответ дан 5 December 2019 в 05:57
поделиться

Для отладки целей, что происходит, если Вы помещаете выражение else против если (chk.checked)?

0
ответ дан 5 December 2019 в 05:57
поделиться
document.getElementById('form1').onsubmit = function() {
    document.getElementById('btn').disabled = true;
};
1
ответ дан 5 December 2019 в 05:57
поделиться

Удостоверьтесь, что Ваша функция JavaScript возвращает true (или значение, которое оценило бы к верной булевской переменной), иначе форма не будет отправлена.

function btn_click()
var chk = document.getElementById("chk");
    if(chk.checked)
    {
            var btn = document.getElementById("btn");
            btn.disabled = true;
            return true;   //this enables the controls action to propagate
    }
    else    return false;  //this prevents it from propagating
}
0
ответ дан 5 December 2019 в 05:57
поделиться

UseSubmitBehavior = "false" преобразует кнопку отправки в обычную кнопку ( ). Если вы не хотите, чтобы это произошло, вы можете скрыть кнопку отправки и сразу вставить на ее место отключенную кнопку. Поскольку это происходит так быстро, для пользователя это будет выглядеть как отключение кнопки. Подробности можно найти в блоге Джоша Стодола .

Пример кода (jQuery):

$("#<%= btnSubmit.ClientID %>").click(function()
{
  $(this)
    .hide()
    .after('<input type="button" value="Please Wait..." disabled="disabled" />');
});
5
ответ дан 5 December 2019 в 05:57
поделиться

Мы используем следующий скрипт JQuery, чтобы отключить все кнопки (input type=submit и button), когда одна кнопка нажата.

Мы просто включили сценарий в глобальный файл JavaScript, поэтому нам не нужно ничего запоминать при создании новых кнопок.

$(document).ready(function() {
    $(":button,:submit").bind("click", function() {
        setTimeout(function() {
            $(":button,:submit").attr("disabled", "true");
        }, 0);
    });
});

Этот скрипт можно легко расширить проверкой Page_ClientValidate().

2
ответ дан 5 December 2019 в 05:57
поделиться
Другие вопросы по тегам:

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