Я работаю с jQuery, и я реализовал обработчик нажатия кнопки. Чтобы проверить, я установил консольный вывод с содержимым "test". Однако при нажатии на кнопку выход появляется в консоли, но только на короткое мгновение, прежде чем снова исчезнуть. Это повторяется при каждом нажатии кнопки.
Код JS:
$(document).ready(function () {
$("#go").click(function () {
console.log("test");
});
});
Код HTML:
<form class="navbar-form navbar-right">
<button id="go" class="btn btn-default">Go</button>
</form>
Есть ли этому решение?
Это потому, что кнопка отправляет форму и перезагружает всю страницу в вашем браузере. Отмените действие по умолчанию этой кнопки, вернув false
из обработчика click
если вы хотите остаться на одной странице и продолжить выполнение кода javascript:
$(document).ready(function () {
$("#go").click(function () {
console.log("test");
return false;
});
});
Если вы не отмените действие по умолчанию, браузер просто перенаправляет, не оставляя времени на запуск каких-либо файлов javascript.
<input type="button">
в этом вашем другом проекте, который, очевидно, не то же самое, что кнопка отправки формы и который фактически не отправляет форму. Это довольно легко увидеть, что происходит. Просто откройте вкладку сети вашей консоли отладки javascript и посмотрите, есть ли HTTP-запрос, отправленный на сервер после нажатия на кнопку.