jQuery serializeArray не включает нажатую кнопку отправки
У меня есть форма, которая имеет две кнопки. Один для сохранения записи, а другой для отмены процедуры сохранения. Я используюrails.js
(обычный плагин AJAX / jQuery для тех из вас, кто не в курсе) Файл javascript, который работает с jQuery для ненавязчивых вызовов javascript / ajax. Когда я отправляю данные формы через ajax, я хочу, чтобы имя и значение кнопки, которую я нажал, были отправлены вместе с остальными данными, чтобы я мог принять решение о том, что делать на основе того, какая кнопка была нажата.
Метод вrails.js
использование файлов.serializeArray()
для отправки данных формы на сервер. Проблема в том, что это не включает пару имя / значение кнопки, на которую я нажал. На сайте jQuery говорится, что они делают это специально (хотя, по моему мнению, они должны):
«.serializeArray()
Метод использует стандартные правила W3C дляуспешный контроль определить, какие элементы он должен включать; в частности, элемент не может быть отключен и должен содержать атрибут имени. Значение кнопки отправки не сериализуется, так как форма не была отправлена с помощью кнопки. "
Как они могут предположить, что форма не была отправлена с помощью кнопки? Это не имеет смысла и неверное предположение, я верю.
По правилам W3C кнопка, которая была активирована для отправки формы, считаетсяуспешный контроль.
Поскольку разработчики jQuery решили сделать это специально, могу ли я предположить, что есть другой метод, которыйНЕ исключить активированную кнопку в сериализации?
РЕДАКТИРОВАТЬ: Вот быстрый пример того, как моя форма может выглядеть ...
<!DOCTYPE html5>
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.3/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function() {
$('#form').submit(function(e) {
// put your breakpoint here to look at e
var x = 0;
});
});
</script>
</head>
<body>
<form id="form">
<input name="name" type="text"><br/>
<input name="commit" type="submit" value="Save"/>
<input name="commit" type="submit" value="Cancel"/>
</form>
</body>