Подтвердить что ты не робот

Как найти кнопку отправки в определенной форме в jQuery

Я пытаюсь получить объект jQuery кнопки отправки в определенной форме (на одной странице есть несколько форм).

Мне удалось получить элемент формы. Это выглядит примерно так:

var curForm = curElement.parents("form");

Текущий элемент имеет контекст HTMLInputElement. В нескольких методах я попытался получить соответствующий элемент отправки формы:

var curSubmit = curForm.find("input[type='submit']");
var curSubmit = $(curForm).find("input[type='submit']");    
var curSubmit = curForm.find(":submit");
var curSubmit = $(curForm).find(":submit");    
var curSubmit = $(curSubmit, "input[type='submit']");

результат всегда один и тот же (и очень странный). Результатом, который я получаю, является тот же элемент, что и "curElement".

Итак, как я могу получить правильную кнопку отправки?

4b9b3361

Ответ 1

Следующее должно работать:

var submit = curElement.closest('form').find(':submit');

Ответ 2

Это должно работать:

var curSubmit = $("input[type=submit]",curForm);

EDIT: Обратите внимание на отсутствующий ' в селекторе

Ответ 4

Это работает для меня:

var curSubmit = $("input[type=submit]",this);

где эта указана текущая форма

для ex. для получения имени отправленной кнопки и всех представленных файлов

$( "form" ).on( "submit", function( event ) {
    event.preventDefault();
    var data = $(this).serialize(); //all input variables  
    console.log(data); //print data in console
    var submit = $("input[type=submit]",this).attr('name'); 
    alert(submit); // name of submit button
});

Ответ 5

BTW: Последний селектор выглядит странно. Он выбирает каждый curSubmit (hm?) В каждом теге input[type=submit]. Может быть, вы имеете в виду var curSubmit = $("input[type=submit]", curForm);

Ответ 6

Если вы хотите найти кнопку отправки формы после ее отправки, вы можете найти следующее полезное... Я использую его для отключения кнопки отправки после отправки формы для предотвращения нескольких кликов.

$("form").submit(function () {
  if ($(this).valid()) { // in case you have some validation
    $(this).find(":submit").prop('disabled', true);
    $("*").css("cursor", "wait"); // in case you want to show a waiting cursor after submit
  }
});