Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Вставка текста при клике (https://javascript.ru/forum/misc/42657-vstavka-teksta-pri-klike.html)

grisha2217 04.11.2013 19:53

Вставка текста при клике
 
Всем привет, нужен скрипт, который будет при клике по ссылке вставлять в поле ввода текст.

<form class="vbform" name="quick_reply" id="quick_reply">
<textarea dir="ltr" tabindex="-1" role="textbox"></textarea>
</form>

Faab 04.11.2013 21:35

А где ссылка?

grisha2217 04.11.2013 22:35

Faab, дак ссылка обычная же должна быть. <a href="#" onlick=здесь функция">

JS код дайте мне, пожалуйста

Faab 04.11.2013 23:33

<script>
function insertText() {  
    var formObject = document.getElementById("quick_reply");
    console.log('1 ' + formObject);
    if(formObject){
      textareaObject = formObject[0];
        if(textareaObject){
          var text = document.createTextNode('Your text'); // Тут ваш текст
          textareaObject.appendChild(text);
          // console.log('child : ' + textareaObject);
        };
    };
 };
</script>


<a href="#" onclick="insertText()">insert</a>

BETEPAH 04.11.2013 23:42

<form class="vbform" name="quick_reply" id="quick_reply">
	<textarea dir="ltr" tabindex="-1" role="textbox"></textarea>
</form>
<span id="pseudolink">Нажми сюда!</span>
<script>
document.getElementById('pseudolink').onclick = function() {
	var text = 'Это вставляемый текст ';
	document.getElementById('quick_reply').getElementsByTagName('textarea')[0].value += text;
}
</script>

Faab 04.11.2013 23:44

У меня вопрос к знатокам, почему я не могу подцепить элемент textarea через getElementsByTagName(). Пример:

function insertText() {  
    var formObject = document.getElementById("quick_reply");
    // console.log('parent : ' + formObject);
    if(formObject){
      textareaObject = formObject.getElementsByTagName("textarea")[0];
      console.log('child : ' + textareaObject); // выводит undefined
      /*
      textareaObject = formObject[0];
      if(textareaObject){
        var text = document.createTextNode('Your text'); // Тут ваш текст
        textareaObject.appendChild(text);
        // console.log('child : ' + textareaObject);
      };
      */
    };
  };

danik.js 04.11.2013 23:49

Цитата:

Сообщение от Faab
У меня вопрос к знатокам, почему я не могу подцепить элемент textarea через getElementsByTagName(). Пример:

В предыдущем комментарии этот метод прекрасно работает, не видишь что-ли?

Faab 04.11.2013 23:50

Цитата:

Сообщение от BETEPAH (Сообщение 279536)
getElementsByTagName('textarea')[0].value += text;

Мне интересна мелочь: прибавление (+=) тут принципиально? Заранее спасибо

BETEPAH 04.11.2013 23:54

Цитата:

Сообщение от Faab
прибавление (+=) тут принципиально?

не принципиально. Текст будет добавляться к уже имеющемуся. Попробуйте покликать несколько раз. Если написать просто ( = ), то текст будет заменяться.

Faab 04.11.2013 23:59

Цитата:

Сообщение от danik.js (Сообщение 279540)
В предыдущем комментарии этот метод прекрасно работает, не видишь что-ли?

Поэтому и задаю вопрос, что не понимаю откуда у меня undefined.. я не вижу принципиальной разницы со своим кодом, ну кроме value конечно.

function insertText() {  
    var formObject = document.getElementById("quick_reply");
    if(formObject){
      textareaObject = formObject.getElementsByTagName("textarea")[0];
      console.log('child : ' + textareaObject); // undefined
    };
  };


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