Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Задача: палец > кнопка > div > to >textarea (https://javascript.ru/forum/events/8235-zadacha-palec-knopka-div-textarea.html)

Апельсин 16.03.2010 03:20

Задача: палец > кнопка > div > to >textarea
 
Здраствуйте. Начну с банальной фразы для новичка - в JS я совсем никакой, хотя достаточно неплохо (вроде) знаю PHP. Взамен на мою задачу могу чтото на пехапе подсказать, помогу, так сказать, чем смогу.
Суть проблемы.
Имеет два дива (или спан + див, спан + спан), имеем текстовое поле и кнопку. Как при нажатии кнопки сделать, чтоб содержимое этих двух элементов вытягивалось и вставлялось в тексарея? но надо чтоб с первого дива все "укладывалось" в тег <quote>, а со второго дива (спана) в обычный див. Все вроде просто (как подсказывает мне моя пехапешная чуйка), но не знаю синтаксиса и не могу сам сделать. :blink:

<div id="a1">aaaaa</div>
<div id="b1">bbbb</div>

При нажатии все летит в тексарея:
<textarea id="text"><quote>aaaaa</quote><div>bbbb</div></textarea>

Вот так примерно. Это все нужно для форума, чтото типа цитаты. Форум уже почти написал, а кнопку вот такую не умею :D Готовое выдрать не хотелось, да и не совсем подходило.

Апельсин 16.03.2010 23:44

Никто нини?:blink:

PepeL 17.03.2010 02:11

name_формы.text.value = "<quote>" + a1.innerHTML + "</quote><div>" + b1.innerHTML + "</div>";

Апельсин 17.03.2010 04:18

Наверно, я чтото неправильно делаю, но не работает :no:
<body><div id="a1">aaaa</div><div id="b1">bbb</div>
<a href="#" onClick="topic.body.value = '<quote>' + a1.innerHTML + '</quote><div>' + b1.innerHTML + '</div>'">Цитата</a>
<form name="topic" action="" method="post" id="topic">
<textarea name="body" id="body"></textarea>
</form>

PepeL 17.03.2010 06:36

Элементы необходимо найти еще. Читай здесь.

Gozar 17.03.2010 07:41

<html><body><div id="a1">aaaa</div><div id="b1">bbb</div>
<input type="button" value="ok" onclick="topic.b.value = '<quote>' + a1.innerHTML + '</quote><div>' + b1.innerHTML + '</div>'">
<form name="topic" action="" method="post" id="topic">
<textarea name="b" id="b"></textarea>
</form></body></html>


Поставьте вместо ссылки кнопку и будет вам счастье.

Апельсин 17.03.2010 10:15

Gozar,
Блин, и вправду счастье :D

PepeL,
Спасиб за пример. Ссылку обязательно освою :thanks:

Апельсин 17.03.2010 21:56

Подскажите еще такую штуку - вставил этот кусок на свою страницу, но ничего не работало. Начал методом тыка (исключения) убирать лишнее и вышло что ошибка в этой строке
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

Эту строку Дримвивер по дефолту ставит в новую страницу. Что в ней не так и чего скрипт не работает с ней?

PepeL 18.03.2010 00:05

это доктейп документа ... в инете много информации об этом прежде чем спросить попробуй поискать http://www.htmlbook.ru/html/!doctype.html

Апельсин 18.03.2010 00:18

Ну, я как бы в курсе для чего это))) Просто не думал что изза этого может не работать js (считал что это просто "пожелание" для браузера). В "голове" страницы были подгружены и другие js-функции, работали как нужно. С этой вот не срослось.

Вот покрутил, ни один DOCTYPE не захотел работать в паре с js-скриптом. А без DOCTYPE скрипт отлично работает.

Gozar 18.03.2010 08:23

Апельсин,
DOCTYPE задает строгое соответствие поведения для браузеров и они стараются это делать. Попробуйте так:

<html><body><div id="a1">aaaa</div><div id="b1">bbb</div>
	<input type="button" value="ok" onclick="document.getElementById('b').value = '<quote>' + document.getElementById('a1').innerHTML + '</quote><div>' + document.getElementById('b1').innerHTML + '</div>'">
	<form name="topic" action="" method="post" id="topic">
	<textarea name="b" id="b"></textarea>
	</form></body></html>

Апельсин 19.03.2010 00:25

Gozar,
Твоя правда, сейчас как часы :thanks:
ЕЩе одна мелочь не дает покоя - прикрутил функции, взятые с этого сайта (аналоги пхп) - strip_tags и str_ireplace, чтоб теги все вырезать и некоторые заменять на бб-код. Но вот в чем заковырка - даже если в тексте, который копируется твоей функцией, стоит знак "&" (не мнемоника), то в тексарея он передается уже как мнемоника. То же самое с пробелами (в тексарея он как &nbsp; отображается) и другими символами. Этого можно избежать както, без построения массивов и массовой замены?

Апельсин 19.03.2010 20:40

Подниму топ, так как на последний вопрос не накопал решения ;)


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