dudeonthehorse
@dudeonthehorse
Email Developer

div contenteditable или textarea?

Собственно есть задача, которую можно решить двумя способами, но в каждом есть заквоздка. Поэтому задам по вопросу для каждого:

1. можно ли POST'ом отправить содержимое дива contenteditable и как?

2. можно ли, и если да, то как заставить textarea менять свою высоту при добавлении текста в поле для того, чтобы не появлялась вертикальная прокрутка? т.е. дать полю поведение дива.
  • Вопрос задан
  • 9075 просмотров
Решения вопроса 1
gigigi
@gigigi
Насчёт п.1 — можно и без доп.полей. Получить содержимое дива (по id) и отправить POST'ом в месте с другими данными. На jQuery это будет примерно так:
var text = $('#editablediv').html();
$.post('/ajax.php', {text: text}, function(data) {alert(data);});
Ответ написан
Пригласить эксперта
Ответы на вопрос 4
ertaquo
@ertaquo
По второму:
<textarea onkeyup="this.style.height = 'auto'; this.style.height = this.scrollHeight + 'px'"></textarea>

Сброс высоты на auto нужен для получения реальной высоты. Если бы не было этого сброса, то высота оставалась бы на своем максимальном значении (например, если удалить строку).
Ответ написан
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
в чем проблема при отправлении формы (при onsubmit) заносить в hidden полесодержимое дива?
Ответ написан
gigigi
@gigigi
По поводу второго, как вариант, попробуйте JS'ом считать кол-во переносов строк (\n) и в зависимости от них менять высоту. Может получится.
Ответ написан
dudeonthehorse
@dudeonthehorse Автор вопроса
Email Developer
после долгих раздумий было решено отказаться от этого типа формы. в итоге пришел к jquery.ui разметке а-ля jsfiddle. только вот на jsfiddle iframe'ы. я же сделал на textarea.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы