我正在使用jQuery 1.7,并且async:false已将其用于AJAX记录,但是我了解到该功能已被弃用。
async:false
我需要使用回调,但这不起作用:
$("#form").submit(function(e) { var cnf; $.ajax({ type: "POST", url: 'page.php', data: $('#form').serialize(), async: true, success: function(responseText) { if(responseText.indexOf('err') != -1) { cnf = "error"; } else { cnf = "success"; } return callBack( cnf ); }, error: function() { cnf = "error"; return callBack( cnf ); } }); if(cnf == "success") { alert('ok'); } });
HTML:
<form id="form"> <input type="text" name="email"> <input type="submit"> </form>
继续评论:当您似乎不需要 回调时 ,您似乎对它有些痴迷!:)
对现有代码的简单更改是丢弃cnf并简单地将代码放入ajax调用的成功部分:
cnf
$("#form").submit(function (e) { $.ajax({ type: "POST", url: 'page.php', data: $('#form').serialize(), async: true, success: function (responseText) { if (responseText.indexOf('err') != -1) { // Do something when it fails here } else { // Do something when it succeeds here!!!! alert('ok'); // e.g. move on to "step 2" } }, error: function () { // Do something when it fails here } }); });