0

我想发送一个表单并留在同一个互联网页面上,为此我使用 jQuery 和 ajax,我的代码是:

$(document).on('submit', '.commentSubmit', function() {
        var el = $(this);
        var message = el.children('textarea').val();
        if(message == '') {
            alert('you can\'t send an empty message');
            return false;
        } else {
            $.ajax({
                url: el.attr('action'),
                type: el.attr('method'),
                data: el.serialize(),
                success: function() {
                    alert('ok');
                }
            });
            return false;
        }

});

所以它运行良好,但现在我想使用一个函数,所以我正在做:

sendMess = function(el){
        var message = el.children('textarea').val();
        if(message == '') {
            alert('you can\'t send an empty message');
            return false;
        } else {
            $.ajax({
                url: el.attr('action'),
                type: el.attr('method'),
                data: el.serialize(),
                success: function() {
                    alert('ok');
                }
            });
            return false;
        }
}


$(document).on('submit', '.commentSubmit', function() {
    sendMess($(this));
});

但是现在当我提交表单时,我将离开当前页面

4

3 回答 3

3

通过在处理程序中返回 false 来取消默认提交操作。

$(document).on('submit', '.commentSubmit', function() {
    sendMess($(this));
    return false;
    // can also do "return sendMess($(this));", but less clear
});
于 2013-04-24T08:03:34.630 回答
0
$(document).on('submit', '.commentSubmit', function(event) {
    sendMess($(this));
    event.preventDefault()
});
于 2013-04-24T08:04:59.980 回答
0

尝试 :

$(document).on('submit', '.commentSubmit', function() {
    return sendMess($(this));
    //Or return false;
});
于 2013-04-24T08:05:09.230 回答