Отключить кнопки, чтобы избежать отправки нескольких форм - PullRequest
2 голосов
/ 14 мая 2019

У меня есть веб-форма, и я заметил, что она генерирует несколько отправлений одних и тех же данных (с интервалом около 100 миллисекунд). Судя по моим исследованиям, отключение кнопок после отправки формы - одна из нескольких вещей, которые нужно сделать. У меня есть два следующих способа отключить кнопки формы:

Method 1:
$('form#my-form').submit(function(e) {
    $(this).find('button').prop("disabled",true);
    return true;
});

Method 2:
$('form#my-form').submit(function(e) {
    $(this).find('button').attr('onclick',"return false;");
});

Давайте просто сосредоточимся на отключении кнопок при отправке формы в браузере. Какой метод лучше? Или другие лучшие способы? Какие-либо последствия? Я знаю, что метод 1 не может передать бэкэнду информацию о том, какая кнопка была нажата, если в форме есть несколько кнопок для разных вещей.

Ответы [ 2 ]

0 голосов
/ 14 мая 2019

Попробуйте, я думаю, задержка может облегчить вашу работу.

 $('#id').on('click',function(){
    // let a common class(disable-btn) for each button which should be disabled for on second
    $('.disable-btn').prop('disabled',true);
    setTimeout(function(){
       // enable click after 1 second
       $('.disable-btn').prop('disabled',false);
    },1000); // 1 second delay
});
0 голосов
/ 14 мая 2019

Вы можете использовать этот метод: event.preventDefault ()

$('form#my-form').submit(function(e) {
     e.preventDefault() 
     //do somethings
}
...