Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Не пойму про .SUBMIT() (https://javascript.ru/forum/jquery/9703-ne-pojjmu-pro-submit.html)

vovasvv 01.06.2010 18:28

Не пойму про .SUBMIT()
 
Всем доброго времени суток!
Я не могу понять почему у меня не работает .SUBMIT()???

На сайте jquery.com в описании про .submit() представлен примитивный пример:

1) Форма

<form id="target">
  <input type="text" name="text" value="Hello there" />
  <input type="submit" name="submitF" value="Go" />
</form>
<div id="other">
  Trigger the handler
</div>



2) код JS
$('#target').submit(function() {
  alert('Handler for .submit() called.');
  return false;
});

$('#other').click(function() {
  $('#target').submit();
});


3) после 2-ого чанка кода (...$('#other').click...) дословно наисано:

"After this code executes, clicks on Trigger the handler will also display the message. In addition, the default submit action on the form will be fired, so the form will be submitted."

Т.е. написано, что после того как вы кликните на div OTHER обработчик 1-ого чанка (....$('#target').submit(function()....) выдаст сообщение из алерта, а далее
ВНИМАНИЕ! (то, чего я не понимаю и у меня не получается) написано -
В дополнении, действие по умолчанию (т.е. как я понимаю сам submit формы) сработает, форма будет отправлена!

Моя проблема в том, что после клика на div OTHER обработчик срабатывает, но после alrerta никакого последующего сабмита НЕ ПРОИСХОДИТ!

Приведенный выше код JS я убрал в отдельный файл, его код:
$(function(){
    $('#target').submit(function() {
       alert('Handler for .submit() called.');
       return false;
    });

    $('#other').click(function() {
      $('#target').submit();
    });
});


Вопросы:
1) Правильно ли я понимаю, что .submit() без обработчика, это тоже самое, как если бы я кликнул по кнопке submit (ну понятно что без события click)

2) Так должен ли происходить submit формы в случае:

а) по клику на div OTHER?

б) Что для меня более важно, если в данную форму добавить еще один текстовый input и сказать

$('#input').change(function() {
      $('#target').submit();
    });


должен ли выскочить alert, а ЗАТЕМ! произойти submit формы с учетом того, что в 1-ом чанке стоит:
return false;
???

Использую:
- jquery-1.4.2.min.js
- firefox 3.6.3
- firebug 1.5.4 (кстати, никаких ошибок при клике на div OTHER нет, просто после алерта нет сабмита)

P.S.
Что я изменил из примера jquery.com
- убрал из формы action="destination.html>
- на всякий пожарный, добавил инпутам атрибуты NAME, в т.ч. сабмиту - SUBMITF

Спасибо!

micscr 01.06.2010 19:07

Видишь вот эту строчку:
return false;

- она отменяет сабмит.

Это надо например когда введены некорректные данные. Напиши в
$(document).ready(function(){
  alert('Страница загрузилась');
});

- будет сигналить тебе когда перезагрузка идет, и анализируй.


Часовой пояс GMT +3, время: 03:57.