Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 01.06.2010, 18:28
Интересующийся
Отправить личное сообщение для vovasvv Посмотреть профиль Найти все сообщения от vovasvv
 
Регистрация: 01.11.2008
Сообщений: 14

Не пойму про .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

Спасибо!

Последний раз редактировалось vovasvv, 01.06.2010 в 18:53.
Ответить с цитированием
  #2 (permalink)  
Старый 01.06.2010, 19:07
Аватар для micscr
Профессор
Отправить личное сообщение для micscr Посмотреть профиль Найти все сообщения от micscr
 
Регистрация: 10.09.2009
Сообщений: 1,566

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

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

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

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

Последний раз редактировалось micscr, 01.06.2010 в 19:09.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопрос: И опять про offsetLeft... sigurd Общие вопросы Javascript 11 04.10.2010 14:06
Подкажите про версии Firefox Beck Общие вопросы Javascript 8 13.05.2010 15:24
Что можно и нужно прочитать про валидацию? Amateur Общие вопросы Javascript 5 09.03.2010 11:41
Не работает .submit() Воитель Общие вопросы Javascript 3 09.11.2009 12:47
вопрос про сверхдинамичный интерфейс Гость AJAX и COMET 2 05.04.2008 01:02