.submit( [ данныеСобытия ], обработчик(объектСобытия)
Добавлена в версию: 1.4.3
Карта данных, которая будет передана в обработчик событий.
Функция для выполнения каждый раз, когда событие вызвано.
Этот метод является сокращением для .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,
которая нормализует поведение события.
Для того, чтобы запретить отправку форм, если не установлена какая-либо переменная, попробуйте:
$("form").submit(function() {
if ($("input:first").val() == "correct") {
$("span").text("Validated...").show();
return true;
}
$("span").text("Not valid!").show().fadeOut(1000);
return false;
});
Пример 2
Для того, чтобы запретить отправку форм, если не установлена какая-либо переменная, попробуйте:
$("form").submit( function () {
return this.some_flag_variable;
} );
Пример 3
Для вызовы события submit для первой формы на странице, попробуйте:
$("form:first").submit();