Я хочу вставить значение в текстовое поле, но так как элементы создаются динамически, я не могу определить идентификатор элемента в JavaScript - PullRequest
0 голосов
/ 01 июня 2019

Я хочу заполнить текстовую область текстом.Я написал скрипт, который делает это по нажатию кнопки.Узким местом здесь является то, что элементы HTML являются динамическими и создаются в соответствии с количеством пользователей, работающих над ним.Ну, мой скрипт работает для статической текстовой области.Как я могу сделать свой сценарий полезным для динамической текстовой области.

  function insertText(elemID, text)
  {     
    var elem = document.getElementById(elemID);
    elem.innerHTML += text;
  }

</script>

<input type="button" name="review_type" value="Postitive"  onclick="insertText('txt1', 'Negative - ')"; /> 
<input type="button" name="review_type" value="Nagative" onclick="insertText('txt1', 'Positive - ')"; />

Спасибо!

Ответы [ 2 ]

0 голосов
/ 01 июня 2019

Понял, работает хорошо. Ниже приведено решение -

В ваш динамически изменяющийся HTML-элемент добавьте следующий код:

<textarea style="height: auto" rows="1" id="txt{{user.id}}" />

Добавить txt {{user.id}} для получения идентификатора динамической текстовой области -

<input type="button" name="review_type" value="Postitive"  onclick="insertText('txt{{user.id}}', 'Positive - ')"; /> 
<input type="button" name="review_type" value="Nagative" onclick="insertText('txt{{user.id}}', 'Negative - ')"; />          
0 голосов
/ 01 июня 2019

Я не могу очистить то, что вы хотите, но я буду стараться изо всех сил. Если вы хотите работать с точным элементом, который клиент нажимает на него, вы можете передать элемент в функцию javascript следующим образом:

<input type="button" name="review_type" value="Postitive"  onclick="insertText(this)" data-text="any text you want" data-foo = "bar"  data-state ="Positive - " /> 

и затем в javascript сделайте что хотите с этим элементом:

  function insertText(element){
   let text = $(element).data("text") # get from 'data-text' attribute
   $(element).text = text; # assign to input
    # do what you want with this element like:
   let input_value = $(element).val()  # result ====> input_value = "Postitive"
   let state =  $(element).data("state") # result ====> state = "Positive - "
   let new_value = $(element).data("foo") #result ===> new_value = "bar"
}

возможно, помогу вам. И попробуйте поработать с jQuery. это проще, чем JavaScript, чтобы выбрать элементы и захват и изменение элементов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...