Как получить текст из инпута? Есть такой код:
function createAddBlock() {
const $addBlock = document.createElement('div');
const $selectContacts = document.createElement('select');
const $phoneOption = document.createElement('option');
const $additionalPhoneOption = document.createElement('option');
const $emailOption = document.createElement('option');
const $vkOption = document.createElement('option');
const $twitterOption = document.createElement('option');
const $selectInput = document.createElement('input');
$addBlock.classList.add('add-contact__contacts');
$selectContacts.classList.add('add-contact__select');
$selectInput.classList.add('add-contact__input');
$phoneOption.textContent = 'Телефон';
$phoneOption.value = 'phone';
$additionalPhoneOption.textContent = 'Доп. тел.';
$additionalPhoneOption.value = 'additional-phone';
$emailOption.textContent = 'Email';
$emailOption.value = 'email';
$vkOption.textContent = 'Vk';
$vkOption.value = 'vk';
$twitterOption.textContent = 'Twitter';
$twitterOption.value = 'twitter';
$selectInput.placeholder = 'Введите данные контакта';
$selectContacts.append($phoneOption, $additionalPhoneOption, $emailOption, $vkOption, $twitterOption);
$addBlock.append($selectContacts, $selectInput);
return {
$selectInput,
$addBlock,
};
}
Данная функция создает блок, которая впоследствии используется здесь:
$btnAddContact.addEventListener('click', () => {
$btnAddContact.insertAdjacentElement('beforebegin', createAddBlock().$addBlock)
})
Мне нужно получить value у $selectInput, чтобы потом value отображался при рендере данных, здесь:
$form.addEventListener('submit', function (event) {
event.preventDefault();
const client = {
id: getID(dataClients),
name: $inputName.value.trim(),
surname: $inputSurname.value.trim(),
lastname: $inputLastname.value.trim(),
createDate: new Date(),
changesDate: new Date(),
contacts: createAddBlock().$selectInput.value,
}
$inputName.value = '';
$inputSurname.value = '';
$inputLastname.value = '';
createAddBlock().$selectInput.value = '';
dataClients.push(client);
renderClients();
})
Но к сожалению, value не отображается. Пытался вынести инпут в глобальную область видимости, но тогда переставало работать событие кликом с добавлением блока.