|
Запретить ввод пустого сообщения
Всем привет!Есть чат,по кнопке send в чат отправляется пустое сообщение как от этого избавиться?Вот код формы
<div class="input-group" > <form target="myIFR" action="" name="order"> <input id="text" type="text" class="form-control message_input" onclick ="var self = this; setTimeout(function(){self.value=''}, 50)" placeholder="введите текст" name="goodss" autocomplete="off" > <iframe name="myIFR" style="display: none"></iframe> </form> <span class="input-group-btn" > <button class="btn btn-secondary send_message" type="button"><i class="fa fa-send"></i><span class="glyphicon glyphicon-send"></span></button> </span> </div> |
Цитата:
Цитата:
<button class="btn btn-secondary send_message" type="submit">которое по-умолчанию можно пропустить. Кнопка должна находиться внутри формы. Таймер можно удалить. Также вместо <i class="fa fa-send"></i><span class="glyphicon glyphicon-send"></span> можно указать просто текст. Тип текст можно не указывать. <div class="input-group"> <form target="myIFR" action="" name="order"> <input id="text" class="form-control message_input" onclick="this.value='';" placeholder="введите текст" name="goodss" autocomplete="off" required> <iframe name="myIFR" style="display: none"></iframe> <span class="input-group-btn"> <button class="btn btn-secondary send_message">Send</button> </span> </form> </div> |
Цитата:
|
Немного не так видимо изложил свою проблему ,у меня в чате появляется сообщение даже если проверку ввода в поле включить,то есть оставить одну кнопку сенд и по ней можно чат заспамить пустыми сообщениями...
|
teplov,
а на сервере фильтровать пустые сообщения? |
laimas, 👌 👍
В примере атрибут form не использовался (и на самой форме нет атрибута id), поэтому я решил, что там неправильно закрыт элемент. |
Цитата:
|
Цитата:
Обычно то, что вы отправили вам не нужно сразу вставлять в чат. Нужно чтобы сервер всем прислал текст, включая вас. (Только у вас он будет отображаться как будто вы отправитель) Тогда вы точно будете уверены, что текст был отправлен, и соответственно только тогда можно очистить поле ввода (Поскольку вы получили ответ от сервера). А если сообщение не было отправлено, то и текстовое поле не нужно очищать (Поскольку его придётся вводить заново и ещё это создаёт ложное впечатление, будто бы текст был отправлен!) Цитата:
|
Вот я и не знаю как на сервере отфильтровать...чат на сокетах вот код скрипта чата
var getMessageText, sendMessage, Message; Message = function (arg) { this.text = arg.text, this.message_side = arg.message_side; this.draw = function (_this) { return function () { var $message; var json = JSON.parse(_this.text); alertChat(); return createMessage(json.text, json.name, json.photo, _this.message_side); }; }(this); return this; }; getMessageText = function () { var $message_input; $message_input = $('.message_input'); return $message_input.val(); }; sendMessage = function (text, message_side) { var $messages, message; if (text.trim() === '') { return; } $messages = $('.messages'); message = new Message({ text: text, message_side: message_side }); message.draw(); return $messages.animate({scrollTop: $messages.prop('scrollHeight')}, 300); }; function createMessage(text, name, photo, message_side){ $message = $($('.message_template').clone().html()); if(message_side==="left"){ $message.find('.text_wrapper').removeClass("pull-left").addClass("pull-right"); $message.find('.text_wrapper').removeClass("alert-info").addClass("alert-warning"); $message.find('.name').removeClass("label-info").addClass("label-warning"); $message.find('.avatar').removeClass("pull-right").addClass("pull-left"); } $message.find('.text').html(text); $message.find('.name').html(name); $message.find('.photo').attr('src', photo); $('.messages').append($message); $message.addClass('appeared'); } |
Вот именно что пустые сообщения не нужны,получается пользователь жмет Enter и в чат летят пустышки,а где и что зафильтровать я не пойму,все перепробовал,но видимо не хватает у меня на старости лет ума (((
|
Часовой пояс GMT +3, время: 03:52. |
|