Функция Javascript не сработала - PullRequest
0 голосов
/ 18 июля 2011

На странице JQuerys (http://api.jquery.com/submit/) я пробую один из их примеров. Это чистая копировальная паста, но (кроме html, body и т. Д.), Все же это не работает.

<body>
<html>
<head>
<script>

$('#target').submit(function() {
  alert('Handler for .submit() called.');
  return false;
});

</script>

</head>

<form id="target" action="get_input_values.html">
  <input type="text" value="Hello there" />
  <input type="submit" value="Go" />
</form>
<div id="other">
  Trigger the handler
</div>

</body>
</html>

Я просто хочу иметь функцию, которая может срабатывать при отправке формы. Следующим шагом мне нужно будет получить значения из полей ввода.

Заранее спасибо!

Ответы [ 7 ]

4 голосов
/ 18 июля 2011

Вы не завернули свой скрипт в блок

$(document).ready(function() {
    ...
});

, поэтому элемент #target не может быть найден при запуске вашего кода.

3 голосов
/ 18 июля 2011

Нет элемента с идентификатором target в DOM во время выполнения сценария .В результате к нулевым элементам прикреплен обработчик события submit.

Переместите скрипт в конец документа (непосредственно перед </body>)

1 голос
/ 18 июля 2011

Вы загрузили jQuery?

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js" type="text/javascript"></script>
1 голос
/ 18 июля 2011

Вы хотите прикрепить событие отправки к форме после ее загрузки на страницу.

Для этого вы можете обернуть все это в $(document).ready():

$(document).ready(function(){
   $('#target').submit(function() {
      alert('Handler for .submit() called.');
      return false;
   });
});

По сути, это говорит о том, что, как только документ завершит загрузку, перейдите, найдите форму и прикрепите к ней событие отправки. Попытка сделать это так, как вы это делает, может привести к тому, что форма на странице не загрузится к тому времени, когда ваш Javascript попытался ее найти.

Вот рабочий пример вашего кода: http://jsfiddle.net/MmMa8/

0 голосов
/ 18 июля 2011

Попробуйте поставить <script>...</script> в конце. Или оберните функцию submit в функцию ready() как:

$(document).ready(function(){
  $('#target').submit(function() {
    alert('Handler for .submit() called.');
    return false;
  });
});

Таким образом, submit будет привязан к форме после загрузки всей страницы.

0 голосов
/ 18 июля 2011

добавить

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js" type="text/javascript"></script>

и оберните его в document.ready или как показано ниже

<script>
$(function(){
$('#target').submit(function() {
 alert('Handler for .submit() called.');
 return false;
});
});

</script>
0 голосов
/ 18 июля 2011

Ваш HTML неверен.Он должен быть упорядочен следующим образом:

<html>
<head>
</head>
<body>
</body>
</html>

Но ваш JavaScript не работает, потому что вы должны поместить его в

$(document).ready(function(){
//your code
});

и дополнительно вы должны включить jQuery в начале:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...