У меня есть поле формы, и я хочу, чтобы оно принимало значение, которое вводит пользователь, и записывало его в список ниже. Я не хочу использовать функции, это вызов.
У меня есть следующий код:
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<title>Mi documento</title>
<script>
var valorname = document.f1.nombre.value
</script>
</head>
<body>
<form name="f1">
<input type="text" name="nombre" onchange="document.getElementById('elemento1').innerHTML=valorname">
</form>
<br><br>
<ul>
<li id="elemento1"></li>
</ul>
</body>
</html>
Как видите, я нарисовал форму и список. Как я уже сказал, я хочу, чтобы при вводе в текстовое поле, по мере его изменения, при выходе из него элемент списка заполнялся значением, введенным в поле.
У меня проблема в том, что я получаю undefined
, как будто я не сохранил то, что было введено в текстовое поле в переменной. Я не знаю, проблема ли это во время выполнения, хотя я думаю, что код JavaScript способен получать данные и сохранять их в переменной; Я говорю это главным образом потому, что это работает с помощью функции.
Как я уже сказал, я не хочу использовать функции. Это просто вызов.
Большое спасибо. Всего наилучшего.
Проблема в том, что вы получаете значение ввода при загрузке страницы, когда оно даже не было создано.
Вы должны получить значение при возникновении события изменения:
В onchange вам лучше привести значение непосредственно к объекту, а не к переменной, которую вы объявили в своем скрипте, таким образом:
Поскольку переменная valuename , находясь в голове , загружается, когда содержимое тела еще не достигло DOM, поэтому ссылка остается как undefined .
Если вы также хотите сохранить значение в переменной, вы можете объявить переменную в начале скрипта и оставить событие onchange следующим образом:
Таким образом, при запуске события onchange вы получаете значение указанного ввода и сохраняете его в переменной valuename .
Хорошо. Большое спасибо вам обоим. Обе возможности действительны. Единственная загвоздка в том, что я не сохраняю значение ни в каких переменных, поэтому вы не сможете его повторно использовать.