jQuery计时问题(ajax)

时间:2012-01-04 00:21:32

标签: javascript jquery ajax

如果按下某个按钮,我正在尝试向python脚本发送两个值。

但是有一个问题: 使用alert("test");一切都很完美。但没有它,就没有任何东西可以发送。

我认为这是一种计时问题,但我无法真正思考问题是什么。 奇怪的是,我甚至可以将警报放在ajax函数前面(但仍然在$("#submit").click部分)并且它完美地运行。

<script type="text/javascript" src="./jquery-1.4.4.min.js"></script>
<script type="text/javascript">
/*<![CDATA[*/
$(document).ready(function(){
    $("#submit").click(function(){
        jQuery.ajax({
            type: "POST",
            url: "../../../cgi-bin/testCgi.py",
            data: {"nick" : $("#nick").val(), "msg" : $("#msg").val()},
            success: function (msg) {
                    alert("Data: " + msg);
            }
        });
        alert("test");
    });
});
/*]]>*/
</script>

1 个答案:

答案 0 :(得分:4)

如果#submit是链接元素<a href="...">或表单按钮,则需要取消默认操作。

$("#submit").click(function(e){

    // added following line and the parameter in the function definition
    e.preventDefault(); 

    jQuery.ajax({
        type: "POST",
        url: "../../../cgi-bin/testCgi.py",
        data: {"nick" : $("#nick").val(), "msg" : $("#msg").val()},
        success: function (msg) {
                alert("Data: " + msg);
        }
    });
    alert("test");
});

如果您不这样做,那么页面会在链接后面,或者提交页面。