Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Отправка данных аякс по Enter, перенос строки Enter+Ctrl (https://javascript.ru/forum/dom-window/68174-otpravka-dannykh-ayaks-po-enter-perenos-stroki-enter-ctrl.html)

shyxeroks 30.03.2017 14:44

Отправка данных аякс по Enter, перенос строки Enter+Ctrl
 
Здравствуйте! Есть функция, которая отправляет на сервер данные по средствам ajax по нажатию на Enter, и перенос строки по нажатию Enter+Ctrl. Когда переносишь строку вставляется html спец. символ (пробел), возможно ли обойтись без него, так как строка переносится и выделяется этот пробел синим цветом? По поводу отправки данных, все хорошо, но все равно после отправки данных на сервер происходит перенос строки, не критично если успешно, так как div(contenteditable) очищается, а если по каким либо причинам сервер выдал ошибку высвечивается модальное окно с текстом ошибки и происходит перенос строки, в этом случае очищать div не хотелось бы. Div очищает переданная функция.
function keyCodeEvent(e,funсtion){
var keyCode = e.keyCode || e.charCode || e.which;
if (keyCode == 10 || keyCode == 13){
if (e.ctrlKey){
var selection = window.getSelection()
,range = selection.getRangeAt(0)
,br = document.createElement("br")
,textNode = document.createTextNode("\u00a0");
range.deleteContents();
range.insertNode(br);
range.collapse(false);
range.insertNode(textNode);
range.selectNodeContents(textNode);
selection.removeAllRanges();
selection.addRange(range);
return false;
}else{
window[funсtion]();
}            
return false;
}
}

shyxeroks 30.03.2017 15:00

Вопрос с переносом строки по нажатию на Enter решил так:
...........
}else{
window[funсtion]();
e.preventDefault(); 
return false;  
} 
.............

Кроссбраузерный ли этот вариант?


Часовой пояс GMT +3, время: 07:06.