Задать вопрос

Почему не выводиться текущее значения поля input в consol?

Проблема заключается в том что не выводиться текущие значение inputa в console.log. При этом class FormElement никак видоизменять нельзя
Вывод в консоль:
function getInfo(event) {
    event.preventDefault();
    console.log('Value-Name: ', elName.getValue());
    console.log('Value-Mail: ', elMail.getValue());
    console.log('Value-Password: ', elPassword.getValue());
    console.log('Value-PasswordRepeat: ', elPasswordRepeat.getValue());
    console.log('Value-Checkbox: ', elCheckbox.getValue());
    console.log('Value-Button: ', elButton.getValue());
}

Весь код :
class FormElement {
    constructor(name, type, value) {
        this.name = name;
        this.type = type;
        this.value = value;
    }
    showName() {
        console.log(`Name: ${this.name}`);
    }
    getValue() {
        return this.value;
    }
}
class TextElement extends FormElement {
    constructor(name, type, value, params) {
        super(name, type, value);
        const { classInput, parentWrapper, parent } = params;
        this.classInput = classInput;
        this.parentWrapper = parentWrapper;
        this.parent = parent;
    }
    createField(placeholder) {
        const newElement = document.createElement('label');
        newElement.classList.add(`form__label`);
        newElement.innerHTML = `<input class='form__input ${this.classInput}' placeholder="${placeholder}" name="${this.name}"type="${this.type}" value="${this.value}" required>`
        this.parentWrapper.append(newElement);
        return this.parent.append(this.parentWrapper);
    }
}
const elName = new TextElement('name', 'text', '',{
    classInput: 'js--input-name',
    parentWrapper: document.querySelector('.js--form_container'),
    parent: document.querySelector('.js--form'),
});
elName.createField('Введите пожалуйста свое имя');

const elMail = new TextElement('email', 'email', '', {
    classInput: 'js--input-email',
    parentWrapper: document.querySelector('.js--form_container'),
    parent: document.querySelector('.js--form'),
});
elMail.createField('Введите пожалуйста ваш электронный адрес');

const elPassword = new TextElement('password', 'password', '', {
    classInput: 'js--input-password',
    parentWrapper: document.querySelector('.js--form_container'),
    parent: document.querySelector('.js--form'),
});
elPassword.createField('Введите пожалуйста пароль');


const elPasswordRepeat = new TextElement('password-repeat', 'password', '', {
    classInput: 'js--input-password',
    parentWrapper: document.querySelector('.js--form_container'),
    parent: document.querySelector('.js--form'),
});
elPasswordRepeat.createField('Введите пожалуйста повторно пароль');



class CheckboxElement extends FormElement {
    constructor(name, type, value, params) {
        super(name, type, value);
        const { classLabel, classInput, parentWrapper, parent } = params;
        this.classLabel = classLabel;
        this.classInput = classInput;
        this.parentWrapper = parentWrapper;
        this.parent = parent;
    }
    createField(check) {
        const newElement = document.createElement('label');
        newElement.classList.add(`form__label`);
        newElement.classList.add(`${this.classLabel}`);
        newElement.innerHTML = `<input class='form__input form__input-checkbox ${this.classInput}' name="${this.name}" type="${this.type}" value="${this.value}" ${check} required>`+
                            `<p class="form__text">I agree all statements in <a class="form__link" href="#">Terms of service</a></p>`;
        this.parentWrapper.append(newElement);
        return this.parent.append(this.parentWrapper);

    }

}
const elCheckbox = new CheckboxElement('checkbox', 'checkbox', 'agreement', {
    classLabel: 'form__label-checkbox',
    classInput: 'js--input-password',
    parentWrapper: document.querySelector('.js--form_container'),
    parent: document.querySelector('.js--form'),
})
elCheckbox.createField(false);




class ButtonElement extends FormElement {
    constructor(name, type, value, params) {
        super(name, type, value);
        const { parentWrapper, parent } = params;
        this.parentWrapper = parentWrapper;
        this.parent = parent;
    }
    createField() {
        const newElement = document.createElement('button');
        newElement.classList.add('form__button');
        newElement.classList.add('js--form__button');
        newElement.setAttribute('name',this.name);
        newElement.setAttribute('type', this.type);
        newElement.setAttribute('value', this.value);
        newElement.textContent = 'Register';
        this.parentWrapper.append(newElement);
        this.parent.append(this.parentWrapper);
        return newElement.addEventListener('click', getInfo)
    }
}
const elButton = new ButtonElement('button', 'submit', 'submit',{
    parentWrapper: document.querySelector('.js--form_container'),
    parent: document.querySelector('.js--form'),
});
elButton.createField();
function getInfo(event) {
    event.preventDefault();
    console.log('Value-Name: ', elName.getValue());
    console.log('Value-Mail: ', elMail.getValue());
    console.log('Value-Password: ', elPassword.getValue());
    console.log('Value-PasswordRepeat: ', elPasswordRepeat.getValue());
    console.log('Value-Checkbox: ', elCheckbox.getValue());
    console.log('Value-Button: ', elButton.getValue());
}

<form class="form js--form" >
        <div class="form__container js--form_container"></div>
    </form>
  • Вопрос задан
  • 110 просмотров
Подписаться 1 Простой 1 комментарий
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
Rocket Смоленск
от 80 000 до 130 000 ₽
div. Ставрополь
от 40 000 до 90 000 ₽
Wanted. Санкт-Петербург
До 220 000 ₽