O jQuery serializeArray não inclui o botão de envio que foi clicado

Eu tenho um formulário que tem dois botões. Um para salvar um registro e outro para cancelar o procedimento de salvamento. Estou usando orails.js (um plug-in AJAX / jQuery comum para aqueles que você não conhece) arquivo javascript que funciona com o jQuery para chamadas javascript / ajax discretas. Quando envio os dados do formulário pelo ajax, desejo que o nome e o valor do botão em que eu cliquei sejam enviados com o restante dos dados, para que eu possa tomar uma decisão sobre o que fazer com base em qual botão foi clicado.

O método norails.js arquivo usa.serializeArray() para enviar dados do formulário para o servidor. O problema é que isso não inclui o par nome / valor do botão em que clicamos. O site da jQuery afirma que eles fazem isso de propósito (apesar de minha opinião de que deveriam):

"O.serializeArray() O método usa as regras padrão do W3C paracontroles bem-sucedidos determinar quais elementos ele deve incluir; em particular, o elemento não pode ser desativado e deve conter um atributo de nome. Nenhum valor do botão de envio é serializado, pois o formulário não foi enviado usando um botão ".

Como eles podem supor que um formulário NÃO foi enviado usando um botão? Isso não faz sentido e uma suposição errada, acredito.

Sob as regras do W3C, o botão que foi ativado para o envio de um formulário é considerado umcontrole bem sucedido.

Como os desenvolvedores do jQuery decidiram fazer isso de propósito, posso assumir que existe outro método queNÃO FAZ excluir o botão ativado em uma serialização?

EDIT: Aqui está um exemplo rápido de como meu formulário pode ser ...

<!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>

questionAnswers(5)

yourAnswerToTheQuestion