У меня странная проблема. Я использую EmojioneArea - плагин jQuery, который позволяет преобразовать любой элемент html в простой редактор WYSIWYG с возможностью использования значков Emojione.
Я реализовал 2 метода для сохранения форма. Нажав «Enter» или нажав кнопку. Отправка формы с помощью «Enter» работает нормально, но отправка формы при нажатии кнопки уничтожает некоторые смайлы, и вместо правильных смайлов появляются два символа.
<form id="chatform" accept-charset="UTF-8">
<textarea id="msginput" class="msginput"></textarea>
<button class="bg2" id="sendb"><img class="w36" src="submit.png" alt=""></button>
<div id="photo" type="button"><a href="#" class="lphoto" ><img class="w4" src="foto.png" alt="" /></a></div>
</form>
Это отлично работает:
$("#msginput").emojioneArea({
useInternalCDN:false,
pickerPosition:"top",
autocomplete: false,
events:{
emojibtn_click:function(button,event){this.hidePicker();},
keyup:function(){updateTyping();},
keypress: function(editor,event) {
if (event.which == 13 && !event.shiftKey && senter == '1') {
event.preventDefault();
runChat(13);
event.target.blur();
return false;
} else {
return false;
}}}
});
но это не:
$("#sendbutton").click(function(){
event.preventDefault();
runChat(13);
event.target.blur();
return false;
});
Другие функции:
function runChat() {
socket.emit('stop typing');
saveChat();
typing = false;
return false;
};
function saveChat() {
var message = $("#msginput").data("emojioneArea").getText();
console.log(message);
...
...
}
Я пробовал с чистым javascript:
document.getElementById('sendbutton').onclick = function()
Пробовал с jquery в разных вариациях
$(document).on('click',"#sendbutton",function()
Тот же результат - 2 символа.
При этом код ниже передает смайлы правильно, но форма отправляется автоматически, после выбора смайлика и без нажатия кнопки:
$(document).on("#sendb").click(function()
Если форма отправляется правильно, почему все другие варианты создают смайлик из 2 символов?