我认为这是一个相当经典的问题,涉及到我看起来像回调比赛,但尽管我阅读了所有内容,但我仍然被卡住了。你会发现下面粘贴的代码。
这是一个简单的登录表单,您可以看到,当单击某个按钮时,我会将表单数据“ajaxically”发送到外部php文件。一旦php运行,我将收到结果,并在此处作为测试,只需从php文件中提醒电子邮件地址。
当我运行它时,ajax回调不会执行。如果我快速反复点击按钮,我会得到正确的警报。如果我发出额外的警报,我也会得到正确的回应。
如何在不做其他愚蠢事情的情况下让它运行?
提前致谢 RR
$('#'+this.loginForm[0].parentId+"logIn")
.on('click', function() {
var jax = $.ajax(
{
type: "POST",
url: "../sharedfunctions3/act-membership.php",
data: {email: document.getElementById(that.parentId+'email').value,
password: document.getElementById(that.parentId+'password').value,
path: that.path,
action: "logIn"
}
});
jax.done(function()
{
obj = JSON.parse($.trim(jax.responseText));
alert(obj.email);
});
jax.fail(function() { alert("error"); });
alert(1);
});
答案 0 :(得分:0)
我有一种预感,当你点击按钮时,浏览器同步和异步提交。
return false;
告诉浏览器不提交表单并阻止默认操作。
单击表单标记内的按钮时,即使不是提交输入,大多数浏览器也会提交表单。