0

我的代码是:

$('form').submit(function(){
                var email           = $('#email').val();
                var dataString      = 'email='+email;
                var datadata;
                $.ajax({
                    type     : "get",
                    url      : "checkEmail.php",
                    data     : dataString,
                    dataType : "html",
                    success  : function(result){
                                 datadata = result;

                              }   
                });

          alert(datadata);
          return false;
            });

为什么这datadata是未定义的?

我开发了一个。我必须在提交之前通过 ajax 检查重复的电子邮件。它返回 catect 结果,但将提交表单。

4

2 回答 2

1

ajax 调用是异步的,这意味着当触发警报时,ajax 调用尚未完成。

尝试将警报放在 ajax 成功函数上,如下所示:

$('form').submit(function(){
                var email           = $('#email').val();
                var filename        = '<?php echo basename($_SERVER['PHP_SELF'], '.php'); ?>';
                var dataString      = 'email='+email+'&userlevel='+filename<?php echo isset($_GET['ID']) ? "+'&uid='+".$_GET['ID'] : '';  ?>;
                var datadata;
                $.ajax({
                    type     : "get",
                    url      : "checkEmail.php",
                    data     : dataString,
                    dataType : "html",
                    success  : function(result){
                                 datadata = result;
                                 alert(datadata);

                              }   
                });


          return false;
        });
于 2013-02-21T08:45:17.670 回答
0

这是因为 onsuccess 是一个异步调用..您正在尝试获取datadata它尚未定义。创建一个函数,在其中定义datadata@ onsuccess 并传递它,result以便在可用时调用它

于 2013-02-21T08:45:33.637 回答