Существует общеизвестный (со стаковерфлоу) код по поводу добавления класса к инпуту после начала ввода: вешаем события на элемент и в случае, если строка не равна "" мы добавляем этот класс.
Отлично. А как сделать подобную штуку на vue.js?
var qs = document.querySelectorAll("form input");
for (let J = qs.length - 1; J >= 0; --J) {
qs[J].addEventListener ("change", adjustStyling, false);
qs[J].addEventListener ("keyup", adjustStyling, false);
qs[J].addEventListener ("focus", adjustStyling, false);
qs[J].addEventListener ("blur", adjustStyling, false);
qs[J].addEventListener ("mousedown", adjustStyling, false);
qs[J].addEventListener ("active", adjustStyling, false)
//-- Initial update. note that IE support is NOT needed.
var evt = document.createEvent ("HTMLEvents");
evt.initEvent ("change", false, true);
qs[J].dispatchEvent (evt);
}
function adjustStyling (zEvent) {
var inpVal = zEvent.target.value;
if (inpVal && inpVal.replace (/^\s+|\s+$/g, "")) // inpVal && inpVal.replace (/^\s+|\s+$/g, "")
zEvent.target.parentNode.classList.add('input-has-text');
else
zEvent.target.parentNode.classList.remove('input-has-text');
}