Я работаю над формой и хотел использовать Javascript для вывода ввода формы.
Поэтому у меня есть следующий скрипт:
<script>
function showName() {
var box = document.getElementById("lorem").value;
console.log(box);
}
showName();
</script> '
Код выше работает очень хорошо, но мне нужно значение var box = document.getElementById("lorem").value;
чтобы быть глобальной переменной, чтобы я мог использовать ее в других функциях без повторного объявления.
Поэтому, когда у меня это есть, ничего не выводится:
<script>
//Declared outside the function
var box = document.getElementById("lorem").value;
function showName() {
console.log(box);
}
showName();
</script>
Пожалуйста, что я делаю неправильно?
Вы можете полностью положить скрипт в конец, прежде чем закрыть <body>
, или сделать так, как предлагалось @jafarbtech, и добавить прослушиватель событий, чтобы дождаться загрузки содержимого DOM.
Значение box
- это начальное значение вашего элемента lorem
при его объявлении. Вероятно, вы хотите:
var box = document.getElementById('lorem');
function showName() {
console.log(box.value); // <-- get the current value
}
// Outputs the current value, initially it will be empty
// of course, until you change your input and call the
// function again
showName();
Edit: DOM необходимо загрузить для этого, чтобы убедиться, что вы поместите свои теги скриптов в свой <body>
Вы можете использовать то же самое. это не проблема. если вы все еще получаете нулевую ошибку, я бы предложил добавить скрипт в конце документа или заключить его в document.addEventListener("DOMContentLoaded", function(event) {
block, как document.addEventListener("DOMContentLoaded", function(event) {
ниже
document.addEventListener("DOMContentLoaded", function(event) {
var box = document.getElementById("lorem").value;
function showName() {
console.log(box);
}
showName();
});
<input type="text" value="hai" id="lorem"/>