我有一個窗體,有兩個按鈕。一個用於保存記錄,另一個用於取消保存過程。我正在使用rails.js
(這是您不熟悉的那些常用AJAX/jQuery插件) JavaScript文件,與jQuery一起使用,用於不顯眼的javascript/ajax調用。當我通過ajax發送表單數據時,我希望我單擊的按鈕的名稱和值與其餘數據一起提交,以便我可以根據單擊哪個按鈕來決定做什麼。jQuery的serializeArray不包括被點擊的提交按鈕
rails.js
文件中的方法使用.serializeArray()
將表單數據發送到服務器。問題是這不包括我點擊的按鈕的名稱/值對。 jQuery的網站上說,他們這樣做的目的(eventhough他們應該在其個人意見):
「的.serializeArray()
方法使用標準的W3C規則successful controls,以確定哪些元素應該包括;特別元素不能被禁用,必須包含一個name屬性,因爲沒有使用按鈕提交表單,因此沒有提交按鈕值被序列化。「
他們怎麼能假定表單沒有用按鈕提交?我相信這是毫無意義和錯誤的假設。
根據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>
對於大家有沒有發現,同樣的問題與''