提交表格w / ajax无效

时间:2013-06-18 03:37:06

标签: ajax forms post

我正在尝试将我的评论区域发布而不使用以下代码刷新页面,但它仍然只是刷新。我试过把返回假;到处都没有。我看不出有明显的问题吗?

    $('#commentForm').keydown(function(e) {
    if (e.keyCode == 13) {
        var songComment = $("#songComment").val();
        var username = $("#username").val();
        var comid = $("#comid").val();
        var dataString = 'songComment=' + songComment + '&username=' + username + '&comid=' + comid;
        if(dataString=='' || songComment=='' || username=='' || comid=='')
        {
            $('.success').fadeOut(200).hide();
            $('.error').fadeOut(200).show();
        }
        else
        {
            $.ajax
            ({
                type: "POST",
                url: "comment.php",
                data: dataString,
                success: function(){
                    $('.success').fadeIn(200).show();
                    $('.error').fadeOut(200).hide();
                }
            });
        }
        return false;
    };
});

1 个答案:

答案 0 :(得分:2)

那里没有什么会导致页面刷新。您只是提交一个AJAX请求,而您根本没有改变窗口位置,也没有告诉它刷新。

您的评论表单中是否有提交按钮?如果是这样,当用户按下回车键时可能会激活它。您需要调用e.preventDefault()以防止传递给处理函数的事件采取正常的操作。具体来说,您需要在 中处理 输入密钥,即:

$('#commentForm').keydown(function(e) {
    if (e.keyCode == 13) {
        e.preventDefault();
        // do stuff in response to enter key being pressed
    }
}

否则,您将停止所有键击任何内容!

当然,如果提交按钮被之前激活到您的事件处理程序,这可能对您没有帮助。考虑使用不是提交按钮的常规按钮:使用按钮类型的buttoninput元素。