Я продолжаю получать дублирующиеся записи в своей базе данных из-за нетерпеливых пользователей, нажимающих кнопку отправки многократно.
Я погуглил и погуглил и нашел несколько сценариев, но ни один из них, кажется, не достаточен.
Как я могу препятствовать тому, чтобы эти дублирующиеся записи произошли с помощью JavaScript или предпочтительно jQuery?
Заранее спасибо!
Как насчет отключения кнопки при отправке? Это то, чем я занимаюсь. Работает нормально.
$('form').submit(function(){
$('input[type=submit]', this).attr('disabled', 'disabled');
});
Заявление об ограничении ответственности:
Это работает, только если в браузере пользователя включен javascript. Если отправляемые данные критичны (например, покупка по кредитной карте), рассматривайте мое решение как только первую линию защиты. Тем не менее, для многих случаев использования отключение кнопки отправки обеспечит достаточную защиту.
Сначала я бы реализовал это решение, предназначенное только для javascript. Затем отслеживайте, сколько повторяющихся записей все еще создается. Если оно равно нулю (или достаточно низко, чтобы это не волновало), то все готово. Если он слишком высок для вас, выполните внутреннюю проверку базы данных для существующей записи.
Вот немного jQuery, который я использую, чтобы избежать проблемы двойного щелчка. Он позволяет нажать только одну кнопку отправки.
$(document).ready(function() {
$("#submit").one('click', function() {
});
});
Это должно помочь:
$("form").submit(function() {
$(":submit", this).attr("disabled", "disabled");
});
Нет JQuery?
В качестве альтернативы, вы можете сделать проверку из базы данных, чтобы проверить, существует ли уже запись, и если да, не вставляйте новую.