Protossan
@Protossan
студент

Как зменить текст в textarea?

Имеется текстовое поле
<textarea id="CartNote" name="note" style="width:100%; height:100px; background:#fff; margin:20px 0; padding:10px;" ></textarea>


И несколько выпадающих списков формата:

<select class="selectcolor_<?=s;?>" id="selectcolor_<?=s;?>">           
..... выборка из базы ......
<option value="<?=color;?>:<?=title;?>"><?=title;?></option>
.....                 
</select>


Для каждого поля есть свой код обработки

<script type="text/javascript"> 
        $('#selectcolor_<?=s;?>').change(function(){
              var First = $("#CartNote").html();
                    
        let arr = First.split('; ');
        
        arr = arr.filter(Boolean);            
                   
        let keyArray = $(this).val().split(':');             
       console.log(arr.length);              
for (let i = 0; i < arr.length; i++) {
    
  if (arr[i].indexOf(keyArray[0]) > -1) {
    arr.splice(i);
  
  }

}
 $("#CartNote").html(arr.toString("; ")+$(this).val()+"; ");  
       });
</script>


Этот код добавляет строку к текстовому полю при смене выбранного пункта списка:

Красный:Стол; Зеленый:Стул; Красная:Простыня;

Но если потом снова сменить цвет стола то будет:

Желтый:Стол;

В чем ошибка? по идее ведь должно было быть

Зеленый:Стул; Красная:Простыня; Желтый:Стол;
  • Вопрос задан
  • 55 просмотров
Решения вопроса 1
SemanticMoscow
@SemanticMoscow
через innerHTML читать содержимое узла textarea в переменную, собирать из текста массив с объектами (разделители у вас есть)
изменять в массиве нужный объект и перезаписывать содержимое узла.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы