jQuery:抓取表单数据

时间:2012-03-18 21:36:54

标签: jquery

    $('.chat').submit(function() {
        $.post("", $(this).serialize(), function(response) {
            $(this).closest('.stake_chat').prepend(???);
        });

        return false;
    });

哪里???我想在表单中输出聊天消息,即name =“chat_message”字段。

帖子序列化表单数据并将其传递到同一站点;我需要将name =“chat_message”的数据放在.stake_chat类中。

1 个答案:

答案 0 :(得分:2)

在AJAX内部成功回调this并不是你想象的那样。它不是形式。它代表xhr对象。如果要在回调中使用它,可以在闭包中捕获表单:

$('.chat').submit(function() {
    var $form = $(this);
    $.post('', $form.serialize(), function(response) {
        $form.closest('.stake_chat').prepend(response);
    });

    return false;
});

或将context参数与$.ajax一起使用:

$('.chat').submit(function() {
    var $form = $(this);
    $.ajax({
        url: '',
        type: 'POST',
        data: $form.serialize(), 
        context: $form,
        success: function(response) {
            this.closest('.stake_chat').prepend(response);
        }
    });

    return false;
});

要获取具有给定名称的表单内的输入,您可以使用以下选择器:

$('input[name="chat_message"]', $form)