Доброго времени суток. Изучаю vue и возник вопрос/проблема. Есть форма заказа в ней поля
поля имеют вот такую верстку:
<div class="groupinput groupinput--required groupinput--recipient">
<input class="formControl formControl--XXL" required id="recipientName" name="recipient[name]" placeholder="Имя получателя" type="text" v-model.leazy="recipient.name">
</div>
смысл такой что плейсхолдер скрыт (стилем), в методе mounted генерируется span на основе плейсхолдера и вставляется в div.groupinput после дочернего input'а, а сделано это с целью. красивого оформления input со смещением плейсхолдера в левый верхний угол при вводе текста
mounted: function () {
let elem=document.querySelectorAll('.groupinput [placeholder]');
elem.forEach(function (item,index) {
let html= document.createElement('span');
html.className='for-'+item.getAttribute('name');
html.innerText=item.getAttribute('placeholder');
console.log(html);
item.after(html);
});
},
есть 2 дива которые контролируются v-if от статуса переключения раидокнопок
и проблема заключается в том что при переключении в блоке v-if не "уничтожаются" все элементы,а именно сохраняется сгенерированный Span (причем не все) и он автоматически вставляется в другой блок v-if хотя по логике должен тоже уничтожитсяx. кто сможет объяснить в чем дело?
код для примера
тут