← Все вопросы

Как считать то, что ввёл пользователь в input, и показать на странице?

Задан 29 месяцев назад212 просмотров2 ответа
7

Есть поле ввода и кнопка. Хочу, чтобы по нажатию текст из поля выводился ниже. Пробую так, но выводится пусто:

<input id="name">
<button id="go">Показать</button>
<p id="out"></p>
const name = document.getElementById('name');
document.getElementById('go').onclick = function() {
  document.getElementById('out').textContent = 'Привет, ' + name;
};

Выводит Привет, [object HTMLInputElement]. Что не так?

2 ответа

12
✓ Принятый ответ — помог автору

Ты выводишь сам элемент <input>, а не то, что в нём набрано. Чтобы достать введённый текст, нужно свойство .value:

const nameInput = document.getElementById('name');
document.getElementById('go').onclick = function() {
  const text = nameInput.value;   // вот тут .value
  document.getElementById('out').textContent = 'Привет, ' + text;
};

name (элемент) — это «коробка». name.value — то, что в неё написали. Именно .value ты и хочешь показать.

5

Помни ещё, что .value — всегда строка, даже если пользователь ввёл число. Если хочешь складывать как числа, преобразуй: Number(input.value). Иначе '2' + '3' даст '23', а не 5.

Ваш ответ

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