我试图根据具体情况向特定文字显示图标。
例如,如果数据成功保存,我会显示“您的数据已保存。”#39;和正确的图标。
我的问题出现在$.ajax
部分之前,一切正常,但之后,我认为我$(this).find(...)
没有给我回复该元素。
有可能吗?
这是我的代码:
$('form.modal-form').on("submit", function (event) {
event.preventDefault();
icon = 'fa-spinner fa-pulse';
text = 'Save in progress';
$(this).find('.modal-footer .pull-left').html('<i class="fa ' + icon + ' fa-fw"></i><span class="hidden-xs">' + text + '</span>');
$.ajax({
type : 'POST',
data : $(this).serialize(),
url : 'assets/php/ajax/'+$(this).data('target')+'.php',
success: function(response){
var json = $.parseJSON(response);
if(json.type=='success'){
icon = 'fa-check';
text = json.message;
$(this).find('.modal-footer .pull-left').html('<i class="fa ' + icon + ' fa-fw"></i><span class="hidden-xs">' + text + '</span>');
}
if(json.type=='error'){
icon = 'fa-exclamation';
text = json.message;
$(this).find('.modal-footer .pull-left').html('<i class="fa ' + icon + ' fa-fw"></i><span class="hidden-xs">' + text + '</span>');
}
}
});
});
答案 0 :(得分:0)
在ajax中,回调this
引用与submit
处理程序中的对象不同的对象,所以不要丢失它,你应该首先将它分配给某个东西( to在event.preventDefault
之后,在后面的回调中将其显示为,例如:
var that = $(this)
并使用that
代替$(this)
。