ОсновноеRadiotalkПользовательское
MPCHAT - CMS хостинг чатов для профессионалов
90   •   Посмотреть все темы

Помогите пожалуйста с отправкой сообщения!

 

2
chilley @chilley
Ребята, возникли проблемы 😀

1) Как мне убрать эту функцию, где есть "Сказать", "Приватное" и т.д., при этом сделать отправку сообщений горячими клавишами!
Например:
1.1 Отправка обычного сообщения как и было "Enter"
1.2 Отправка приватного сообщения "Ctrl + Enter".
2) Я сделал только 1 строку ввода, когда хочу отправить сообщение посетителю чата, то он появляется в строке, где печатаешь сообщение, это хорошо, но
как мне избавиться от накопления никнеймов в нем?) Хочу знать, как сделать так, чтобы оно просто заменяло на другой выбранный, а не продолжало вставляться в строку ввода.
Помогите мне пожалуйста

2615
Сергей @Pegass
Доподлинно писать не буду, оттолкнитесь от этого с Ctrl+Enter

<script type="text/javascript">
function ctrlEnter(event, formElem)
{
if((event.ctrlKey) && ((event.keyCode == 0xA)||(event.keyCode == 0xD)))
{
//тут надо приплюсовать к тексту /privat
formElem.submit.click();
}
}
</script>
<form onkeypress="ctrlEnter(event, this);">...</form>

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

Отредактировано Pegass - 24.12.2012
1007
BETEPAH @BETEPAH
Я как-то решал у себя похожую задачу (отправка через enter и вставка переноса строки через ctrl+enter). Не помню почему, но почему-то напрямую в лоб не получилось проверять нажата ли клавиша ctrl. Пришлось вот так в обход делать: отменять действие по энтеру, вводить переменную, сигнализирующую о состоянии ctrl, и затем заново проставлять действия на каждое из условий. В общем, как-то так:
$(function(){
ctrl = false;
$('#abc').keydown(function(event){
switch (event.which) {
case 13: return false;
case 17: ctrl = true;
}
});
$('#abc').keyup(function(event){
switch (event.which) {
case 13:
if (ctrl) {
$('#abc').val('/privat ' + $('#abc').val());
}
$('#fmsg').submit();
return false;
break;
case 17: ctrl = false;
}
});
})

2
chilley @chilley
Хорошо, но куда это все вписывать то? :Р
Вы меня носом ткните, чтобы мне стыдно совсем стало 😀
Спасибо