#javascript #html
#javascript #innerhtml #вывод
Вопрос:
Я новичок в javascript, и при каждой простой вещи у меня возникает какая-то проблема, но мне это кажется неразрешимым. Я погуглил и ничего похожего.
После того, как я ввожу данные в текстовое поле и сохраняю их в переменной, я распечатываю переменную в абзаце. Проблема в том, что вывод, который я распечатал, исчезает менее чем за секунду. Код кажется нормальным, что это может быть? Это выглядит как c, когда вы не ставите getch(); Заранее спасибо.
<form>Unesite broj koji ce se ispisat kasnije.<br>
<input type="text" id="userInput">
<input type="submit" name="unos" value="Unesi i ispisi" onclick="unesi()"><br><br>
</form>
<br><br>
<p>Unjeli ste <b id="ispis"></b></p>
<script>
function unesi(){
var userInput = document.getElementById('userInput').value;
document.getElementById('ispis').innerHTML = userInput;
}
</script>
Комментарии:
1. Вы отправляете форму с помощью кнопки, попробуйте изменить тип с ‘submit’ на ‘button’
Ответ №1:
<form>
Тег не указывает action
атрибут, поэтому, когда вы нажимаете кнопку отправки, браузер отправляет форму по текущему URL-адресу, который будет выглядеть так, как будто страница обновляется.
Если вы хотите запустить unesi
функцию, когда пользователь нажимает «Отправить», и запретить отправку HTML-формы, вам нужно немного изменить ее:
<input type="submit" name="unos" value="Unesi i ispisi"
onclick="unesi(); return false;">
return false
Предотвращает отправку формы самой по себе.
Комментарии:
1. Спасибо за ваш ответ, теперь я понимаю, и я бы не стал без вашего объяснения. Но ваш код не приносит никакой пользы, он все еще обновляется. Единственная рабочая вещь — это удаление <form> из кода.
Ответ №2:
Потому что форма отправляет и обновляет страницу. Отмените запрос формы.
<input type="submit" name="unos" value="Unesi i ispisi" onclick="return unesi()">
и функция
function unesi(){
var userInput = document.getElementById('userInput').value;
document.getElementById('ispis').innerHTML = userInput;
return false;
}
лучший вариант — сделать это на уровне формы
<form action="#" method="get" onsubmit="return unesi()">
Комментарии:
1. Я выполнил ваш первый вариант, и он все еще обновляется, а также второй … единственное, что сработало, это удаление <form> из кода. большое спасибо, я бы не понял этого без вашей помощи.
Ответ №3:
Вместо отмены отправки формы, другим вариантом является изменение
<input type="submit" name="unos" value="Unesi i ispisi" onclick="unesi()">
Для
<input type="button" name="unos" value="Unesi i ispisi" onclick="unesi()">
Это сделает так, что форма вообще не будет пытаться отправить при нажатии кнопки.