$('.chat').submit(function() {
$.post("", $(this).serialize(), function(response) {
$(this).closest('.stake_chat').prepend(???);
});
return false;
});
哪里???我想在表单中输出聊天消息,即name =“chat_message”字段。
帖子序列化表单数据并将其传递到同一站点;我需要将name =“chat_message”的数据放在.stake_chat类中。
答案 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)