0

我有一个我认为是相当经典的问题,涉及在我看来像是一场回调竞赛,但尽管我阅读了所有内容,但我仍然陷入困境。您会在下面找到粘贴的代码。

这是一个简单的登录表单,您可以看到当单击某个按钮时,我会将表单数据“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);
      });
4

1 回答 1

0

我有一种预感,当您单击按钮时,浏览器正在同步和异步提交。

告诉浏览器return false;不要提交表单并阻止默认操作。

当点击表单标签内的按钮时,大多数浏览器都会提交表单,即使它不是提交输入。

于 2013-03-24T02:43:06.610 回答