Jump to content
  • 0

Вставка текста в textarea.


Kompilator
 Share

Question

Здравствуйте !

 

Решил сделать на свой сайт комментарии.
Есть такая функция:

	function citata(message)	{		message = message + 'mess';		document.getElementById('outmess').innerHTML += document.getElementById(message).innerHTML;		}

Она вставляет в текстовое поле текст из написанных ранее сообщений.

 

Во-первых, текст исправно вставляется лишь до внесения изменений в это текстовое поле. Стоит написать любую букву, как вставка перестаёт работать.

 

Во-вторых, пытаюсь сделать перевод строки после вставки символом "\n", но оно не работает. И к тому же, если перенос строки уже был в цитируемом сообщении, то в форму оно вставляется с тегом - <br>.

 

Как и следовало ожидать, у меня возникло два вопроса.

 

1. Как мочь добавлять текст при помощи этой функции, когда я уже что-нибудь набрал в форме ?

2. Как осуществить перенос строки в форме и избавиться от вывода - <br> ?

 

Огромное всем спасибо за содействие и милости прошу на мой сайт !

Link to comment
Share on other sites

Recommended Posts

  • 0

Давайте ссылку на работающий фиддл — там видно будет.

http://велосвет.рф/article/cri_temp.html?scrtop=9999

У каждого сообщения серая полоса сверху. Слева ник и количество посещений, справа пиктограмма странички. Это кнопка цитировать.

Надо зарегистрироваться, чтобы процитировать кого-нибудь.

Edited by Kompilator
Link to comment
Share on other sites

  • 0
function citata(message) { message = message + 'mess'; document.getElementById('outmess').innerHTML += document.getElementById(message).innerHTML; }

У textarea есть свойство value. Не используйте innerHTML.

 

Т.е. изменить в самом value, в кавычках ?

Link to comment
Share on other sites

  • 0

Да, так работает, большое спасибо.

А что скажете по поводу этого:

 

Во-вторых, пытаюсь сделать перевод строки после вставки символом "\n", но оно не работает. И к тому же, если перенос строки уже был в цитируемом сообщении, то в форму оно вставляется с тегом - <br>

 

Link to comment
Share on other sites

  • 0
Только не понял как regex работает, т.е. принцип составления шаблона. Прочитал 2 статьи ... и нуль.

http://phpclub.ru/detail/article/regexp_1

http://phpclub.ru/detail/article/regexp_2

 

Вот две отличнейшие статьи. Если они не помогут, то уже ничего не поможет. 

  • Like 2
Link to comment
Share on other sites

  • 0

Попробуйте с помощью regex'а заменить, как-то так.

 

 

 

Только не понял как regex работает, т.е. принцип составления шаблона. Прочитал 2 статьи ... и нуль.

http://phpclub.ru/detail/article/regexp_1

http://phpclub.ru/detail/article/regexp_2

 

Вот две отличнейшие статьи. Если они не помогут, то уже ничего не поможет. 

 

Спасибейшее, Вам, спасибо !

Начал читать, тут да, разжевано как раз, для таких тугих как я.

Link to comment
Share on other sites

  • 0

Рано как оказалось, пожелал спасибейшего - спасиба ...

Еще назрела проблема вопроса, а заключается она вот в чем - кнопка формы обрабатывается скриптом по онклиск.

echo '<input id="buttred" class="messbutt_art" type="button" value="Отправить" onClick="sendmessage(\''.$pathlogin.'\')

У этой кнопки есть АйДи - "buttred", для того, чтобы менять действие этой кнопки в зависимости от ситуации.

Так вот, надпись на кнопке я умею изменять, вот таким кодом:

document.getElementById('buttred').value = 'Изменить';

, а вот как поменять действие по Онклиск ?

 

Как обычно, заранее СПАСИБО ! Т.к. знаю, что поможете =).

Link to comment
Share on other sites

  • 0

Доброго всем вечера, либо иного времени суток в  действительности являющегося таковым у Вас в данный момент времени !

Возник снова я с новым вопросом, будоражущим мой мозг вот уже 5-ю минуту.

А как вставлять в поле ввода, не в конце имеющегося там текста, как это сейчас делается на моём сайте, этой строкой кода:

document.getElementById('outmess').value += msg2;

, а туда, куда вздумается пользователю поставить имеющийся у него курсор ?

Заранее и снова спасибо !

Edited by Kompilator
Link to comment
Share on other sites

  • 0

Возникли вопросы.

 

1. У Вас в коде используется textarea, а на моей странице два поля ввода, как указать в скрипте, в какой именно вставлять ?

У текстовых полей разные имена, куда нужно это имя написать ? а то всё вставляется только в первое поле.

Гугл говорит использовать - querySelectorAll, только вот в разных местах, синтаксис разный, какой я не пробовал, ничего не работает в браузере.

У меня текстовые поля оформлены так: <textarea id="outmess2" type="text" name="mess" class="comm_news"></textarea>.

Так понимаю, в querySelectorAll нужно указать ID поля, но как это сделать, нет в сети. Т.е. есть, но как обычно, везде синтаксис разный и ни один не работает.

—\

Нашел !

document.querySelector('#outmess2') //возвращает элемент с ID="myheader"

В сотый раз поражаюсь яве, в сети много разных примеров одной и той же функции, большинство из которых не работают ((((

Почему так ?

Edited by Kompilator
Link to comment
Share on other sites

  • 0

Возник еще вопрос по яве.

Странно происходит, вот эта строка :

var stroka = document.getElementById(message).innerHTML;

в браузерах - опера, хром, фаерфокс, яндекс, синий земной шар на планшете, выдают такой результат:

<img class="messimg1" src="http://велосвет.рф/pic/K-4/28.jpg" alt="велосвет.рф" title="велофары"><br>

а в ИЕ (последнем), такое:

<img title="велофары" class="messimg1" alt="велосвет.рф" src="http://велосвет.рф/pic/K-4/28.jpg"><br>

т.е. титл и класс не после ссылки на картинку, а перед.

Из-за этого мои функции в ИЕ некорректно работают.

Как такое вообще получилось ? И как избавиться от глюка эксплорера ?

Edited by Kompilator
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy