Не работает javascript при вызове с формы
Пытаюсь вызвать скрипт из формы, но не происходит вызов скрипта:
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<script>
alert ("jjj")
$("#friend-form").submit(function (e) {
e.preventDefault();
alert "jjj"
})
</script>
<form id="friend-form">
<input type="submit" class="btn btn-primary" value="fuck Friend" />
</form>
</body>
</html>
Ответы (3 шт):
Автор решения: Arturas Lapinskas
→ Ссылка
Вероятно, в момент инициализации дом элемента еще нет, Используйте .on("submit", function(), либо перенесите скрипт в конец страницы. Либо, еще старый добрый способ обернуть все в $(document).ready
Автор решения: Poul WWJD
→ Ссылка
Странноватое название кнопки.
По сути.
Вам уже ранее посоветовали перенести установку обработчика после появления элемента. Но кроме этого:
- alert это функция, поэтому параметр передается по синтаксису в круглых кавычках;
- лишний alert в скрипте нужно убрать;
- после обработки события (если форму Вы отправлять не собираетесь), нужно вернуть значение из функции.
В итоге получится вот что.
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.6.4/jquery.min.js"></script>
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<form id="friend-form">
<input type="submit" class="btn btn-primary" value="f**k Friend" />
</form>
<script>
$("#friend-form").submit(function(e) {
alert ("jjj");
e.preventDefault();
return false;
});
</script>
</body>
</html>
Автор решения: Igor
→ Ссылка
Строчка
alert "jjj"
синтаксически ошибочна. Вы хотели написать
alert("jjj");
Из-за этой синтаксической ошибки весь скрипт внутри тэга <script> игнорируется.
Ну и элемента формы еще не существует, когда на него навешивается обработчик события.