没有得到JQuery响应

没有得到JQuery响应,jquery,Jquery,我有以下脚本: <script> $(document).ready(function(){ $("div.msg").hide(); $("button.show").click(function(){ $("div.msg").slideDown(2000); }); $("button.hide").click(function(){ $("div.msg")

我有以下脚本:

<script>
    $(document).ready(function(){
        $("div.msg").hide();
        $("button.show").click(function(){
            $("div.msg").slideDown(2000);
        });
        $("button.hide").click(function(){
            $("div.msg").slideUp(2000);
        });
        $("form.reg").submit(function(){
            var name = $("#name").val();
            if(($("#name").val() == "") || ($("#name").val() == null)){
                $("div.error").html("Name cannot be left blank");
                //alert("Name cannot be left blank");
                return false;
            }
            else{
                $("div.error").html("Name:"+name);
                return true;
            }       
        });
        $("#name").blur(function(){
            var name = $("#name").val();
            alert("Hi! "+name);
            $.ajax({
                type:"POST",
                url:"validate.php",
                data:"name="+name,
                success:function(res){
                    //alert(res);
                    $("#error").val(res);
                }
            });
        }); 
    });
</script>

$(文档).ready(函数(){
$(“div.msg”).hide();
$(“button.show”)。单击(函数(){
美元(“div.msg”)。向下滑动(2000年);
});
$(“button.hide”)。单击(函数(){
$(“div.msg”)。slideUp(2000年);
});
$(“form.reg”).submit(函数(){
var name=$(“#name”).val();
if($(“#name”).val()==”)|($(“#name”).val()==null)){
$(“div.error”).html(“名称不能留空”);
//警报(“名称不能为空”);
返回false;
}
否则{
$(“div.error”).html(“名称:”+Name);
返回true;
}       
});
$(“#名称”).blur(函数(){
var name=$(“#name”).val();
警报(“嗨!”+姓名);
$.ajax({
类型:“POST”,
url:“validate.php”,
数据:“name=“+name,
成功:功能(res){
//警报(res);
$(“#错误”).val(res);
}
});
}); 
});
以及validate.php脚本:

<?php
if(isset($_POST['name'])){
    $name = $_POST['name'];
    if($name == 'sam')
        echo '<strong>Already taken.</strong>';
    else
        echo '<strong>Avaiable</strong>';
}
else
    echo 'Not Set!';
?>


我的问题是,我从未将此验证页面的响应输入到我的div中(#error)。请帮助我们解决这个问题。

看来您只是使用了错误的jQuery函数来设置结果。从前面的代码中,似乎选择符指向一个div元素,在这种情况下,您需要使用函数
.html()
来设置响应

改变

 $("#error").val(res);

当然,这是假设你在帖子的成功功能中得到了回应

试试看

$.ajax({                                
    url: "validate.php",
        data: { name: $("#name").val() },
        type: "POST",
        success: function (res) {
        alert(res); 
        //$("#error").val(res);
        },
        error: function(xhr, status, error) {
        alert(xhr.responseText);
        }                      
});

对于这类场景,像firebug这样的工具将非常有用。通过导航到Net-->XHR选项卡,我们可以看到异步请求的结果。

我认为如果分离验证函数,会更容易。然后在php验证脚本上使用json响应更安全

HTML/Javascript 函数形式_验证() { var误差=0; var错误消息

    if(($("#name").val() == "") || ($("#name").val() == null)){

        error_msg = "Name cannot be left blank";
        error = 1;
    }else
    {
         $.ajax({
                type:"POST",
                url:"validate.php",
                data:"name="+$("#name").val(),
                success:function(res){                    
                    if(res.status=='error')
                    {
                        error_msg = res.msg;
                        error = 1;
                    }
                },
                dataType: "json"
            });
    }

    if(error==1)
    {
        $("div.error").html(error_msg);
        return false;
    }else
    {
        return true;
    }
}

$(document).ready(function(){

    ("#name").blur(function(){
                form_validation();
        }); 

    $("form.reg").submit(function(){

        if(form_validation())
        {
            #### Do ajax post to PHP to save to your DB
        }

        return false; ### Do disable the form submit (page refresh)
    });

  });
</script>
if($(“#name”).val()==”)|($(“#name”).val()==null)){
错误\u msg=“名称不能为空”;
误差=1;
}否则
{
$.ajax({
类型:“POST”,
url:“validate.php”,
数据:“name=”+$(“#name”).val(),
成功:功能(res){
如果(res.status=='error')
{
错误消息=res.msg;
误差=1;
}
},
数据类型:“json”
});
}
如果(错误==1)
{
$(“div.error”).html(error\u msg);
返回false;
}否则
{
返回true;
}
}
$(文档).ready(函数(){
(“#name”).blur(函数(){
表单_验证();
}); 
$(“form.reg”).submit(函数(){
if(form_validation())
{
####将ajax发布到PHP以保存到数据库
}
返回false;###是否禁用表单提交(页面刷新)
});
});
PHP验证脚本

<?php

if(isset($_POST['name'])){
    $name = $_POST['name'];
    if($name == 'sam')
        $arr = array("status"=>'success','msg'=>'Taken');
    else
        $arr = array("status"=>'success','msg'=>'Available');
}
else
{
    $arr = array("status"=>'error','msg'=>'Error');
}

    echo json_encode($arr);
    exit;
?>


您是否收到php脚本的响应?例如,您的已评论警报调用是否有结果?请尝试在POST请求中添加错误函数,并记录结果。像您的成功处理程序一样,除了使用
error:function(jqXHR,textStatus,errorhown){console.log(jqXHR,textStatus,errorhown);}
可能这会让您了解POST失败的原因。@Jlange我在哪里检查日志..在大多数现代浏览器中按“F12”可以访问开发工具。然后转到“控制台”选项卡。
<?php

if(isset($_POST['name'])){
    $name = $_POST['name'];
    if($name == 'sam')
        $arr = array("status"=>'success','msg'=>'Taken');
    else
        $arr = array("status"=>'success','msg'=>'Available');
}
else
{
    $arr = array("status"=>'error','msg'=>'Error');
}

    echo json_encode($arr);
    exit;
?>