.submit() – обработчик отправки формы на сервер

.submit() – устанавливает обработчик отправки формы на сервер, либо запускает это событие.

Метод имеет три варианта использования.

.submit( handler )
  • handler — функция, которая будет установлена в качестве обработчика.
.submit( [eventData ], handler )
  • eventData – объект содержащий данные, для передачи в обработчик. Должны быть представлены в формате {fName1:value1, fName2:value2, ...};
  • handler — функция, которая будет установлена в качестве обработчика.
.submit()

Вызывает событие submit, у выбранных элементов страницы.

В первых двух вариантах использования, метод является аналогом .on("submit", handler), а в третьем случае аналогом .trigger( "submit" ).

Событие submit происходит непосредственно перед отправкой формы на сервер и в обработчике можно инициировать отмену отправки формы, вызвав метод eventObject.preventDefault() или просто возвратив false. Событие submit можно привязать только к элементу form.

Формы могут быть отправлены либо нажатием явного <input type = "submit">, <input type = "image">, либо <button type = "submit">, либо нажатием Enter, когда определенные элементы формы имеют фокус.

Для примера рассмотрим 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( event ) {
  alert( "Handler for .submit() called." );
  event.preventDefault();
});

Теперь, когда форма будет отправлена, будет выдано сообщение. Это событие происходит до фактической отправки, поэтому мы можем отменить это действие, вызвав .preventDefault() для объекта события или вернув false из нашего обработчика. Мы можем инициировать событие вручную при нажатии на другой элемент:

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

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

Событие отправки JavaScript не «всплывает» в Internet Explorer. Тем не менее, скрипты, которые полагаются на делегирование событий с событием отправки, будут последовательно работать в разных браузерах начиная с jQuery 1.4, что нормализовало поведение события.

Дополнительно

Событие submit() является лишь сокращением для .on("submit", handler), поэтому убрать установленный обработчик можно с помощью .off( "submit" )

Формы и их дочерние элементы не должны использовать имена ввода или идентификаторы, которые противоречат свойствам формы, таким как submit, length, или method. Конфликты имен могут вызывать сбои.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *