Я пытаюсь найти значение кнопки отправки, которая инициировала форму для представления
$("form").submit(function() {
});
Я мог возможно стрелять, $ ("вводит [type=submit]"), .click () событие для каждой кнопки, и установите некоторую переменную, но это кажется менее изящным, чем некоторые, как, осуществляя кнопку форма на отправляет.
Я реализовал это и полагаю, что это будет делать.
$(document).ready(function() {
$("form").submit(function() {
var val = $("input[type=submit][clicked=true]").val()
// DO WORK
});
И это событие кнопки «Отправить», которое устанавливает его
$("form input[type=submit]").click(function() {
$("input[type=submit]", $(this).parents("form")).removeAttr("clicked");
$(this).attr("clicked", "true");
});
, спасибо за ответы, но это не ужасно несуществует ...
jQuery, похоже, не предоставляет эти данные о событии «Отправить». Похоже, этот метод, который вы предложили, это ваша лучшая ставка.
Я создал тестовую форму и с помощью Firebug нашел этот способ получения значения;
$('form').submit(function(event){
alert(event.originalEvent.explicitOriginalTarget.value);
});
К сожалению, только Firefox поддерживает это событие.
Вы можете попробовать так с помощью «Event.originalEvent.x» и «Event.originalEvent.y»:
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<title>test</title>
</head>
<body>
<form id="is_a_form">
<input id="is_a_input_1" type="submit"><br />
<input id="is_a_input_2" type="submit"><br />
<input id="is_a_input_3" type="submit"><br />
<input id="is_a_input_4" type="submit"><br />
<input id="is_a_input_5" type="submit"><br />
</form>
</body>
</html>
<script>
$(function(){
$.fn.extend({
inPosition: function(x, y) {
return this.each(function() {
try{
var offset = $(this).offset();
if ( (x >= offset.left) &&
(x <= (offset.left+$(this).width())) &&
(y >= offset.top) &&
(y <= (offset.top+$(this).height())) )
{
$(this).css("background-color", "red");
}
else
{
$(this).css("background-color", "#d4d0c8");
}
}
catch(ex)
{
}
});
}
});
$("form").submit(function(ev) {
$("input[type='submit']").inPosition(ev.originalEvent.x ,ev.originalEvent.y);
return false;
});
});
</script>
Согласно по этой ссылке, объект Event содержит поле Event.target
, которое:
Возвращает строку, представляющую объект, инициировавший событие.
Я только что создал страницу, проверяющую, что это за значение, и кажется, что это представление для самой формы, а не для нажатой кнопки. Другими словами, Javascript не предоставляет возможности определения нажатой кнопки.
Что касается решения Дэйва Андерсона , было бы неплохо проверить это в нескольких браузерах, прежде чем использовать его. Возможно, это может сработать хорошо, но я не могу сказать в любом случае.