Как отправить сообщение при нажатии кнопки только один раз?
Нужно отправлять сообщения при нажатии на кнопку. При нескольких нажатиях отправляется несколько раз. Были попытки отменять обработчик, как кнопка нажата, и добавлять обратно, когда сообщение пришло, менять класс кнопки, очищать поле сразу после нажатия. Но в мобильных браузерах ничего из этого не срабатывает и сообщения как будто выстраиваются в очередь, а потом приходят все. Как можно сделать, чтобы сообщение отправлялось только один раз?
var text = textarea.value;
textarea.value = "";
if (text.search(/\S/) != -1) {
socket.emit('message', text, function() {
checkMessage("a-mess", text);
});
}
это кусок функции, которая является обработчиком нажатия на кнопку с последним вариантом -очищать поле сразу, там еще у меня класс кнопки проверяется, и как уже было сказано, была попытка просто его убрать, чтоб не срабатывал этот кусок функции, а потом в колбеке возвращать.
Понравилась идея "скрывать кнопку". Как вариант, многие разработчики после нажатия кнопки submit делают ее disabled. В таком случае нажать несколько раз не получится. Должно срабатывать и на мобильных.