#jquery #form-submit
#jquery #форма-отправить
Вопрос:
Я почти час пытался выяснить, как выполнить некоторую проверку перед отправкой формы. Моя форма выглядит так:
<!doctype html>
<head>
<title>sample</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"> </script>
<script>
$("#myform").submit(function() {
alert("it is not working");
return false;
});
</script>
</head>
<body>
<form id="myform">
<input id="foo" value="Change me and press enter"/>
<input type="submit" />
</form>
</body>
</html>
Он не работает в IE, Chrome FF 🙁
Должно быть, я делаю что-то ужасно неправильное, но что?
Редактировать
Рабочий пример:
<!doctype html>
<head>
<title>sample</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"> </script>
<script>
$(document).ready(function() {
$("#myform").submit(function() {
alert("Now it is def working!");
return false;
});
});
</script>
</head>
<body>
<div id="myform">
<form id="myform">
<input id="foo" value="Change me and press enter"/>
<input type="submit" />
</form>
</div>
</body>
</html>
Комментарии:
1. Ваш текст предупреждения неверен. Когда он сообщает вам «это не работает», на самом деле это означает «это работает».
2. Определите «это не работает». (Что, по-видимому, является плохим выбором для текста предупреждения, поскольку, если текст отображается, это означает, что JavaScript работает .)
3. @TomalakGeret’kal HA B-)
4. Нам нужно найти главный вопрос для этих слишком локализованных вопросов «попытка использовать элемент DOM до его существования».
5. @Tomalakgeret’kal ах, но какой именно?
Ответ №1:
Оберните это в готовую функцию:
$(function(){
$("#myform").submit(function() {
alert("THIS IS WORKING!!!!!!");
return false;
});
});
Вам нужно обернуть это в готовую функцию, потому что там, где сейчас находится ваша функция, элемент DOM #myForm
не существует, поэтому вы прикрепляете обработчик к несуществующему элементу.
Функция ready ожидает загрузки DOM, а затем запускает все внутри готового завершения.
Комментарии:
1. @Tomalakgeret’kal добавил объяснение:-P
2. @Neal: Бах, и теперь мое остроумие спорно!
3. @Tomalakgeret’kal он все еще там ^_^ только в немного меньшей форме 😀