Значение кнопки отправки нажата
Это должно быть действительно прямо.
Я проверяю, отправляется ли форма с помощью jquery. Форма имеет несколько кнопок отправки с различными значениями:
<button type="submit" value="foo">Foo</button>
<button type="submit" value="bar">Bar</button>
Я хотел бы найти значение кнопки, которая только что отправила форму:
$(form).live('submit', function() {
// Get value of submit button
}
Спасибо
Ответы
Ответ 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 на каждой кнопке отправки, как предложили другие. Это работает нормально, и вы можете вернуть им ложь, если хотите отменить отправку. Просто не пытайтесь также связать событие отправки формы. Вы также можете заставить каждого из этих обработчиков вызвать общую функцию-обработчик отправки, передав свое собственное значение в качестве аргумента.