Ajax JQuery成功功能无法正常工作

时间:2014-11-05 15:02:01

标签: javascript php jquery ajax

我不确定出了什么问题,但由于某种原因,Ajax中的成功函数没有调用该函数。我要求它在PHP完成后调用。

对于我有$test = 'Hi'; echo json_encode($test);

的PHP

这是我的主页代码:

<?php
    session_start();
    if(!isset($_SESSION["b2_in"])){
        header("Location: b2.php");
    }
?>

<script>

$(document).ready(function(){   
    $("form input:submit").click(function() {
        $.ajax({
            type: "POST",
            url: 'b2_send.php',
            data: $('form').serialize(),
            dataType: 'json',
            //beforeSend: function(){ $("#send").val('Sending...');},
            success: function(data) {
                TestFunction();
            },
            statusCode: {
                403: function(e) {
                    $("say").highlight();
                    $("#message").html(e.responseText);
                }
            }
        });
    return false;
    });
});

function TestFunction(){
    $("#message").val("");
}

</script>

<say>
    <form> 
        <input type="text" name="message" class="Message" id="message"/>
        <input type="submit" name="send" value='Say' id="send"/>
        <span id="message" style="font-weight:bold;color:red;"></span>
    </form>
</say>

1 个答案:

答案 0 :(得分:0)

试试这个

span是DOM的块元素,因此要为其设置数据,您需要使用$(id).html(data);而不是val()

你也应该为dom中的每个元素设置不同的id,它总是选择它在dom中获得的第一个id,在你的情况下它是

<input type="text" name="message" class="Message" id="message"/>所以它会改变这个元素的值

<script>

$(document).ready(function(){   
    $("form input:submit").click(function() {
        $.ajax({
            type: "POST",
            url: 'b2_send.php',
            data: $('form').serialize(),
            dataType: 'json',
            //beforeSend: function(){ $("#send").val('Sending...');},
            success: function(data) {
                TestFunction();
            },
            statusCode: {
                403: function(e) {
                    $("say").highlight();
                    $("#message").html(e.responseText);
                }
            }
        });
    return false;
    });
});

function TestFunction(){
    $("#message").html("");
}

</script>