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

Значение кнопки отправки нажата

Это должно быть действительно прямо.

Я проверяю, отправляется ли форма с помощью jquery. Форма имеет несколько кнопок отправки с различными значениями:

<button type="submit" value="foo">Foo</button>
<button type="submit" value="bar">Bar</button>

Я хотел бы найти значение кнопки, которая только что отправила форму:

$(form).live('submit', function() {
    // Get value of submit button
}

Спасибо

4b9b3361

Ответ 1

Привяжите событие к отправке кнопок вместо формы, а затем $(this) будет иметь ссылку на кнопки...

$(":submit").live('click', function() {
    alert($(this).val());
})

EDIT В jQuery 1.7 live устарела. Вместо этого используйте on.

$(document).on("click", ":submit", function(e){
    alert($(this).val());
});

Ответ 2

Кажется, что нажата кнопка отправки:

jQuery("#TheForm").context.activeElement.name
jQuery("#TheForm").context.activeElement.value

Ответ 3

Вы не можете, если используете событие "отправить". Форма может быть отправлена ​​без нажатия кнопки отправки.

Чтобы получить эту кнопку, вам нужно изменить свой подход, используя пользовательские события и пометив, на какую кнопку нажали кнопку (создание селектора, который может щелкнуть по любой из кнопок X в форме). Это также требует привязки настраиваемого события и запрещения отправки события самой формы.

Ответ 4

$('input[type="submit"]').click(function() {
    alert ($(this).val());
}

Ответ 5

Я рекомендую использовать Firebug Add On, вы получаете много ответов на свои вопросы, просто глядя на данные в консоли. Я понимаю, что в вашем случае вы можете получить доступ к значению submit следующим образом:

alert($(this).context.submit.value);

Ответ 6

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