提交ajax结果undefined

时间:2013-02-21 08:42:33

标签: jquery ajax

我的代码是:

$('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 befor submit检查重复的电子邮件。它返回catect结果,但表单将被提交。

2 个答案:

答案 0 :(得分: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;
        });

答案 1 :(得分:0)

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