jquery ajax请求了两次问题
页面有一个请求form:
<form method="post" id="signin">
<label for="orderid">订单编号</label>
<input id="oid" name="orderid" value="" title="orderid" tabindex="4" type="text">
</p>
<p>
<label for="username">用户帐户</label>
<input id="username" name="username" value="" title="username" tabindex="5" type="text">
</p>
<p>
<label for="sendStatus">发货状态</label>
<select id="sendStatus">
<option value="-1">请选择</option>
<option value="0">未发送</option>
<option value="1">已发送</option>
</select>
</p>
<p>
<button type='submit' id='submit' onclick=showdatalist()>查询</button>
</p>
</form>
JavaScript请求部分:
function showdatalist()
{
var username = $("#username").val();
var orderid = $("#oid").val();
var sendStatus = $("#sendStatus").val();
var data = {"username" : username, "orderid" : orderid, "sendStatus" : sendStatus, "type" : "0"};
$.ajax({
url:"<%=path%>" + "/****",
type : "post",
data : data,
async : true,
success : function(obj)
{
console.dir(obj);
if (obj.success == true)
{
if (obj.obj == null || obj.obj.length < 1)
{
$("#content").html("");
}
else
{
$("#content").html("");
var content= obj.obj ;
var p = "";
var start = 0;
for (i = 0; i < content.length; i++)
{
//组装数据
}
}
}
}
});
}
控制台监测到两次请求:
原因:
发生两次提交的原因是在执行完ajax请求后,并没有阻止submit的行为,所以解决方法有两种:
1、不使用type为submit类型的按钮,而是使用type是button的按钮。
2、在showdatalist函数中,最后加一行return false;,即可阻止submit。