我有一个窗体,有两个按钮。一个用于保存记录,另一个用于取消保存过程。我正在使用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>
对于大家有没有发现,同样的问题与''