Я не могу сделать console.log. Вне слушателя событий он работает безупречно. Но когда я хочу сделать console.log внутри прослушивателя событий (form submit), ничего не появляется в консоли.
<form id="formMovies">
<input type="text" id="title">
<button type="submit" id="boton">Guardar</button>
</form>
<script>
var _form = document.querySelector("#formMovies");
var _title = document.querySelector("#title").value;
_form.addEventListener('submit', ()=>{
console.log(_title);
});
</script>
Это произошло потому, что действие "отправить" обновило страницу, что означает, что консоль браузера будет перезагружена и все журналы будут очищены.
Если вы хотите остановить это поведение, чтобы увидеть ваше сообщение в журнале, вы можете использовать preventDefault()
или return false;
лайк:
_form.addEventListener('submit', (e)=>{
e.preventDefault();
console.log(_title);
//Or
//return false;
});
вам нужно предотвратить действие по умолчанию, которое запускается (которое заменяет/перезагружает страницу чем-то другим) на type=submit
и явно form.submit()
форму с формой form.submit()
возможно, через несколько секунд в зависимости от ваших потребностей;
var _form = document.querySelector("#formMovies");
var _title = document.querySelector("#title").value;
_form.addEventListener('submit', evt => {
evt.preventDefault();
console.log(_title);
});
Проблема заключается в том, когда код запускается до нажатия кнопки, нет значения, установленного для _title
. Возьмите значение внутри функции обработчика событий. Вы также можете использовать event.preventDefault()
чтобы предотвратить event.preventDefault()
формы, и вы можете увидеть результат.
<form id="formMovies">
<input type="text" id="title">
<button type="submit" id="boton">Guardar</button>
</form>
<script>
var _form = document.querySelector("#formMovies");
_form.addEventListener('submit', (e)=>{
var _title = document.querySelector("#title").value;
console.log(_title);
e.preventDefault();
});
</script>