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>

Ответы на вопрос(5)

Ваш ответ на вопрос