Описание: Привязывает обработчик события к событию "submit" JavaScript, или вызывает данное событие на элемент.
.submit( handler(объектСобытия) )
.submit( )
.submit( [ данныеСобытия ], обработчик(объектСобытия)
Этот метод является сокращением для .bind('submit', handler)
в первом варианте, и .trigger('submit') во втором.
Событие submit посылается элементу, когда пользователь пытается послать форму.
Событие может быть привязанно только к элементам <form>.
Формы могут быть посланны либо после явного нажатия <input type="submit">, <input type="image">, или <button type="submit">,
или нажатием Enter, когда определенный элемент формы сфокусирован.
В зависимости от браузера, только кнопка Ввода может быть причиной отправки формы, если форма имеет только одно текстовое поле, или только когда в форме представленна кнопка отправки. Интерфейс не должен полагаться на особенности поведения данной кнопки, если только выдача не вынужденная, путем наблюдения события
keypressдля передачи кнопки Ввода.
Для примера, рассмотрим HTML:
<form id="target" action="destination.html"> <input type="text" value="Hello there" /> <input type="submit" value="Go" /> </form> <div id="other"> Trigger the handler </div>
Обработчик события может быть привязан к форме:
$('#target').submit(function() {
alert('Handler for .submit() called.');
return false;
});
Теперь, когда форма отправленна, будет выдано сообщение.
Это происходит до фактической отправки, поэтому мы можем отменить действие отправки
с помощью вызова .preventDefault()
на объект события или с помощью возвращения false от обработчика.
Мы можем инициировать событие вручную, когда другой элемент нажат:
$('#other').click(function() {
$('#target').submit();
});
После выполнения этого кода, нажатие на Trigger the handler также выдаст сообщение.
В дополнение, действие на форму по умолчанию submit
будет запущенно, таким образом форма будет отправленна.
Событие JavaScript submit
не передается в Internet Explorer.
Тем не менее, сценарии, которые основанны на событии делегирования с событием submit
работают последовательно через браузеры только начиная с jQuery 1.4,
которая нормализует поведение события.
Примеры
Пример 1
Для того, чтобы запретить отправку форм, если не установлена какая-либо переменная, попробуйте:Пример 1 - Полный код:
<!DOCTYPE html> <html> <head> <script src="http://code.jquery.com/jquery-latest.js"></script> <script type="text/javascript" language="javascript"> $(document).ready(function(){ $("form").submit(function() { if ($("input:first").val() == "correct") { $("span").text("Validated...").show(); return true; } $("span").text("Not valid!").show().fadeOut(1000); return false; }); }); </script> <style> p { margin:0; color:blue; } div,p { margin-left:10px; } span { color:red; } </style> </head> <body> <p>Type 'correct' to validate.</p> <form action="javascript:alert('success!');"> <div> <input type="text" /> <input type="submit" /> </div> </form> <span></span> </body> </html>
Пример 2
Для того, чтобы запретить отправку форм, если не установлена какая-либо переменная, попробуйте:$("form").submit( function () {
return this.some_flag_variable;
} );
Пример 3
Для вызовы события submit для первой формы на странице, попробуйте:$("form:first").submit();

