Как я могу предотвратить двойное, отправляют с jQuery или JavaScript?

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

Я погуглил и погуглил и нашел несколько сценариев, но ни один из них, кажется, не достаточен.

Как я могу препятствовать тому, чтобы эти дублирующиеся записи произошли с помощью JavaScript или предпочтительно jQuery?

Заранее спасибо!

15
задан Nikola Petkanski 18 October 2012 в 10:17
поделиться

3 ответа

Как насчет отключения кнопки при отправке? Это то, чем я занимаюсь. Работает нормально.

$('form').submit(function(){
    $('input[type=submit]', this).attr('disabled', 'disabled');
});

Заявление об ограничении ответственности:
Это работает, только если в браузере пользователя включен javascript. Если отправляемые данные критичны (например, покупка по кредитной карте), рассматривайте мое решение как только первую линию защиты. Тем не менее, для многих случаев использования отключение кнопки отправки обеспечит достаточную защиту.

Сначала я бы реализовал это решение, предназначенное только для javascript. Затем отслеживайте, сколько повторяющихся записей все еще создается. Если оно равно нулю (или достаточно низко, чтобы это не волновало), то все готово. Если он слишком высок для вас, выполните внутреннюю проверку базы данных для существующей записи.

21
ответ дан 1 December 2019 в 00:41
поделиться

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

$(document).ready(function() {
  $("#submit").one('click', function() {
  });
});
2
ответ дан 1 December 2019 в 00:41
поделиться

Это должно помочь:

$("form").submit(function() {
   $(":submit", this).attr("disabled", "disabled");
});

Нет JQuery?

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

9
ответ дан 1 December 2019 в 00:41
поделиться
Другие вопросы по тегам:

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