【问题标题】:ajax form errorajax表单错误
【发布时间】:2013-01-29 03:35:33
【问题描述】:

按下按钮后,我收到以下警告并且表单重复。代码中有错误吗?

           <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
            <html xmlns="http://www.w3.org/1999/xhtml">
            <head>
            <meta http-equiv="Content-Type" content="text/html; charset=windows-1254" />
            <script src="jquery-ui-1.10.0.custom/jquery-1.9.1.min.js" type="text/javascript"></script>
            <title>jquery AJAX</title>
            <script language="javascript">
                $(document).ready(function(){
                            var name    = $("#name").val();
                            var sname   = $("#sname").val();
                            var email   = $("#email").val();

                        $("#b1").click(function(){          
                            $.ajax({
                                type    :"POST",
                                URL     :"save.php",
                                data    :"name="+name+"&sname="+sname+"&email="+email,
                                dataType:"text",
                                success :function (data, textStatus, jqXHR) {                           
                                            if (data == 'success'){
                                                $("#res").html("sonuc :"+data); 
                                            }else{
                                                $("#res").html(data +":"+textStatus+":"+jqXHR);
                                                }
                                }
                            });             
                        }); 
                    });

            </script>
            </head>
            <body>
            <input type="text" id="name"/><br />
            <input type="text" id="sname"/><br />
            <input type="text" id="email"/><br />
            <button id="b1">send</button>
            <div id="res"></div>
            </body>
            </html>

【问题讨论】:

    标签: ajax forms duplicates send


    【解决方案1】:

    它正在做它应该做的事情。错误在这部分:

    success :function (data, textStatus, jqXHR) {                           
        if (data == 'success'){
            $("#res").html("sonuc :"+data); 
        }else{
            $("#res").html(data +":"+textStatus+":"+jqXHR);
        }
    }
    

    只要 AJAX 调用成功,就会触发此回调,但随后您检查 data 键是否等于 success,它不是,因此现在触发 else 子句(如您的屏幕截图所示) .我相信您实际上要检查的是textStatus 是否成功。所以,替换:

    if (data == 'success'){
    

    有了这个:

    if (textStatus == 'success') {
    

    你应该得到一个sonuc :,然后是数据。

    请注意虽然整个 if/else 实际上没有用,因为这已经是 success 回调,只有在 AJAX 请求成功时才会返回。你可能想这样写:

    $("#res").html(data +":"+textStatus+":"+jqXHR);
    

    进入错误回调,这样你会得到:

    success: function (data, textStatus, jqXHR) {                           
        $("#res").html("sonuc :"+data); 
    },
    error: function (jqXHR, textStatus, errorThrown) {
        $("#res").html(data +":"+textStatus+":"+jqXHR);
    }
    

    【讨论】:

    • 我按照你说的做了,但是当我点击按钮时,它会重新创建表单,就像你看到的那样。它运行不正确。我无法回调结果
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-03-12
    • 2014-12-22
    • 2010-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多