我正在使用jQuery向Ajax提交注释,并在AJAX状态成功后在提交表单后附加它。但它无法正常工作。
HTML:
<div class="reply_form_div">
<textarea name='reply' type='text' class="form-control reply" rows="3" ></textarea>
<button type="submit" STYLE="align: right;" class="btn btn-info reply_button yGreenButton">Submit</button>
</div>
jQuery的:
$(function()
{
$('.reply_button').click(function(){
var reply = $(this).siblings('textarea').val();
$.ajax({
type:"POST",
url: base_url + "interview/reply_upload",
data:{reply: reply},
dataType: "json",
success: function(data,status){
if(data.state == 'succ')
{
this_a.html('Success');
$(this).parent().append("<b>Hello world!</b>");
}
else
{
this_a.html('fail');
}
}
});
});
}):
服务器端语言正常工作,如果我把它放在ajax括号之外,我可以看到附加信息。
谢谢!
答案 0 :(得分:2)
这里的问题是$(this)
指的是回调内部的AJAX响应。在这种情况下,您需要缓存对触发click事件的原始元素的引用。
$('.reply_button').click(function(){
var $this = $(this);
现在,您可以使用上面定义的缓存引用在成功中执行追加。
$this.parent().append("<b>Hello world!</b>");