$("#ajaxform").submit(function(e){
var info = $(this).serialize();
$.ajax(
{
url : "controller",
type: "post",
data : info,
success:function(data, textStatus, jqXHR)
{
$('.valid').html(data);
}
});
e.preventDefault()
});
$(".mainbutton").click(function(){
$("#ajaxform").submit();
if($('.valid').html(data) == "success"){ // could this fail?
var info = $("#ajaxform").serialize();
$.get("controller", info);
}
});
我正在进行ajax调用,并且在响应中我将"成功"。是否有机会(a(' .valid')。html(数据)=="成功")之前和之后调用ajax调用,实际上是if语句失败?
答案 0 :(得分:0)
是即可。 Ajax调用是异步。因此,您不能指望顺序流。最好在回调中处理,如
$("#ajaxform").submit(function(e){
var info = $(this).serialize();
$.ajax(
{
url : "controller",
type: "post",
data : info,
success:function(data, textStatus, jqXHR)
{
$('.valid').html(data);
if($('.valid').html(data) == "success"){
var info = $("#ajaxform").serialize();
$.get("controller", info);
}
}
});
e.preventDefault()
});
$(".mainbutton").click(function(){
$("#ajaxform").submit();
});
答案 1 :(得分:0)
您可以使用 .promise()。done();
success:function(data, textStatus, jqXHR)
{
$('.valid').html(data).promise().done(function(){
$.get("controller", info);
});
}
$(".mainbutton").click(function(){
$("#ajaxform").submit();
// or
//$("#ajaxform").trigger('submit');
});
有关.promise()的更多信息。完成()看看http://digitizor.com/2013/08/03/jquery-html-callback-function-using-promise/