我想使用ajax提交表单。
以下是我的代码:
$("#loginForm").submit(function() {
var url = <url>;
$.ajax({
type: "POST",
url: url,
data: $("#loginForm").serialize(), // serializes the form's elements.
success: function(data)
{
if(data == '0'){
$("#loginErr").show();
return false;
}
else if(data == '1')
return true;
}
});
return false;
});
如果ajax响应为1,我想提交表单但不管数据值如何,表单都没有提交。它的返回值总是错误的。我检查过它是否达到了条件,但是在返回时没有停止执行。
我如何提交表格?我想刷新我的页面。
答案 0 :(得分:1)
使用:
$("#loginForm").submit(function (event) {
var url = < url > ;
$.ajax({
type: "POST",
url: url,
context:this, //setting context on form
data: $("#loginForm").serialize(), // serializes the form's elements.
success: function (data) {
if (data == '0') $("#loginErr").show();
else if (data == '1') this.submit();//use js submit event, not jq. We need to manually submit it now that we know its successful
}
});
event.preventDefault(); //Stop the form submitting straight away
});
答案 1 :(得分:0)
我不确定您要检查哪些数据。但是如果这些数据来自表单本身,那么你需要在ajax调用之前检查它。一旦你进行了ajax post call,你的表单就已经提交了。
$("#loginForm").submit(function(e)
{
var url = <url>;
e.preventDefault();
mydata = $("#loginForm").serialize();
//Your check here
if(mydata == '0')
{
$("#loginErr").show();
return false;
}
$.ajax({
type: "POST",
url: url,
data: mydata,
success: function(response)
{
//this is your post response processor
}
});
return false;
});
答案 2 :(得分:0)
由于我想刷新页面,我确实想要同步请求。设置async false解决了这个问题。我可以在Ajax对象之外获取ret值,因为它是同步请求的。
$("#loginForm").submit(function() {
var url = <url>;
var ret = false;
$.ajax({
async: false,
type: "POST",
url: url,
data: $("#loginForm").serialize(), // serializes the form's elements.
success: function(data)
{
//alert(data); // show response from the php script.
if(data == '1')
ret = true;
else if(data == '0')
$("#loginErr").show();
}
});
return ret;
});