Jquery 为什么我的表单在Ajax调用后被提交?
我有以下资料:Jquery 为什么我的表单在Ajax调用后被提交?,jquery,ajax,Jquery,Ajax,我有以下资料: <form id="form" action="xxx" method="get"> <input type="checkbox" name="cb"> <button onclick="update();">Update</button> </form> <script> function update() { var data = $("#form").serialize();
<form id="form" action="xxx" method="get">
<input type="checkbox" name="cb">
<button onclick="update();">Update</button>
</form>
<script>
function update() {
var data = $("#form").serialize();
$.ajax( {
url: "/api/m/x",
type: "post",
data: data
}
).done(function(results,status) {
alert(status);
}).fail(function(error, status) {
alert(status);
});
}
</script>
更新
函数更新(){
var data=$(“#form”).serialize();
$.ajax({
url:“/api/m/x”,
类型:“post”,
数据:数据
}
).完成(功能(结果、状态){
警报(状态);
}).失败(功能(错误、状态){
警报(状态);
});
}
当我单击Update按钮时,Ajax调用被调用到/api/m/x
,其中一个警报被触发。到现在为止,一直都还不错。但是,在我关闭警报对话框后,表单已提交!浏览器被发送到xxx?cb=on
,例如,如果我勾选了复选框
为什么会这样?我的表单没有
元素。是谁触发了表单的提交
我尝试添加
returnfalse
到更新
功能,但行为仍然相同。如果表单中有按钮,则单击此按钮时表单正在提交
试着这样做:
<form onsubmit="update();return false;">
如果表单中有按钮,则单击此按钮时表单正在提交 试着这样做:
<form onsubmit="update();return false;">
表单中的
标记是提交按钮,除非您指定type=button
此外,返回false应该出现在
onsubmit
事件上
<form id="form" action="xxx" method="get" onsubmit="return update();">
function update() {
...
return false;
}
函数更新(){
...
返回false;
}
表单中的
标记是提交按钮,除非您指定type=button
此外,返回false应该出现在
onsubmit
事件上
<form id="form" action="xxx" method="get" onsubmit="return update();">
function update() {
...
return false;
}
函数更新(){
...
返回false;
}
您的成功在哪里?完成中的成功在哪里?因为您没有做任何事情来阻止它被提交。提交您使用内联处理程序的原因是什么?另外,您需要将处理程序看作是函数(){update()}
的等价物,这应该告诉您为什么返回falseupdate
函数中的code>不起作用。您的成功在哪里?done
中的成功在哪里?因为您没有做任何事情来阻止它被提交。try submit这是您使用内联处理程序的原因吗?另外,您需要将处理程序看作是函数(){update()}
的等价物,这应该告诉您为什么返回false更新
功能中的code>不工作。