Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   textarea. Программно вставить текст. (https://javascript.ru/forum/events/81042-textarea-programmno-vstavit-tekst.html)

DDim1000 19.09.2020 17:04

textarea. Программно вставить текст.
 
Здравствуйте!
Подскажите, пожалуйста, почему так не вставляется текст в textarea?:
var textarea = document.querySelectorAll(".sc-pYOiM");      
        textarea .val("Текст, который необходимо вставить");

https://jsfiddle.net/zb8p4w70/1/

рони 19.09.2020 17:05

DDim1000,
потому что нужен элемент в который добавляется текст.

DDim1000 19.09.2020 17:08

Цитата:

Сообщение от рони (Сообщение 529035)
DDim1000,
потому что нужен элемент в который добавляется текст.

Ну, textarea есть же.....

laimas 19.09.2020 17:12

querySelectorAll - возвращает коллекцию, это первое, а второе, это нет у текстового поля свойства val (а такой функции и подавно нет), есть свойство value.

DDim1000 19.09.2020 17:20

Цитата:

Сообщение от laimas (Сообщение 529037)
querySelectorAll - возвращает коллекцию, это первое, а второе, это нет у текстового поля свойства val (а такой функции и подавно нет), есть свойство value.

А как нужно делать?
Так тоже не работает:
var textarea = $(".sc-pYOiM");      
       

        textarea .value("Текст, который необходимо вставить");

рони 19.09.2020 17:24

DDim1000,
:-?
var textarea = document.querySelectorAll(".sc-pYOiM");     
        textarea[0].value = "Текст, который необходимо вставить";

laimas 19.09.2020 17:32

Цитата:

Сообщение от DDim1000
Так тоже не работает

Вы путает jQuery с нативным JS, вот в первой есть функция .val(), поэтому надо

var textarea = $(".sc-pYOiM");
textarea.val("Текст, который необходимо вставить");


А в нативном как показали, правда если поле одно, то ни к чему коллекцию получать, и нужно document.querySelector(".sc-pYOiM")

DDim1000 19.09.2020 19:23

Все получилось!!! Текст вставляется, но, возникла другая проблема..
При щелчке на поле textarea, вставленный программно, текст удаляется.
Почему так происходит?
https://youtu.be/uHkqkzEGqLo

voraa 19.09.2020 19:41

Лучше код тут приведите.
И HTML и Js.

DDim1000 19.09.2020 20:08

Цитата:

Сообщение от voraa (Сообщение 529046)
Лучше код тут приведите.
И HTML и Js.

<div class="sc-ptTHP iyAkBQ"><div class="sc-pIWiK lWZjq"><pre class="sc-pQthR fFrNVt"></pre><textarea placeholder="Написать сообщение..." role="textbox" data-name="input-textarea" class="sc-pYOiM emEhfU"></textarea></div><div data-name="messenger-send-message-icon" class="sc-qOhCc fcjSMW"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" class="sc-fznZeY gJlwEu"><g fill="none" fill-rule="evenodd" stroke="#46AAE9" stroke-width="1.5"><path d="M1 21.972c8 .391 12-3.276 12-11.002V2.765"></path><path d="M5 10l8-8 8 8"></path></g></svg></div></div>


function SetMessage(m){
           var textarea = document.querySelector("textarea[data-name='input-textarea']");   
         
            textarea.value = m;
            $("div[data-name='messenger-send-message-icon']").click();
 };


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