【发布时间】:2017-09-19 02:04:22
【问题描述】:
我有一个在 laravel 中使用 ajax 添加数据的代码。现在,当我尝试输入有效数据时,我的 ajax 将返回警报成功类,如果错误它会给我警报危险类并列出 <li> 中字段的所有错误现在我的问题是当我第一次输入正确的数据时,我的警报成功工作正常并给我一个成功的警报消息,现在当我复制我的数据时,它会返回错误并且我的<li> 列表没有被清空。我附加的成功消息没有被清除。
这是我的代码:
function addCategoryAjax(e) {
e.preventDefault();
$('.print-error-msg ul').empty();
$.ajax({
url: "{{ route('admin.addcat') }}",
type: "POST",
data: $("#frmAddcategory").serialize(),
dataType: "JSON",
success: function(data) {
if($.isEmptyObject(data.error)){
$('.print-error-msg').removeClass('alert alert-danger');
$(".print-error-msg").addClass('alert alert-success');
$(".print-error-msg").find("ul").html('');
$(".print-error-msg").css('display','block');
$(".print-error-msg").append('<li>'+data.success+'</li>');
}else{
printErrorMsg(data.error);
}
}
});
}
function printErrorMsg (msg) {
$('.print-error-msg').removeClass('alert alert-success');
$(".print-error-msg").addClass('alert alert-danger');
$(".print-error-msg").find("ul").html('');
$(".print-error-msg").css('display','block');
$.each( msg, function( key, value ) {
$(".print-error-msg").find("ul").append('<li>'+value+'</li>');
});
}
我上面的代码显示了来自li 的附加消息。为什么这个$('.print-error-msg ul').empty(); 不起作用。?有什么建议吗?
这是我的看法:
<div class="row">
<div class="col-md-10 col-md-offset-1" style="margin-top: 6px;">
<div class="print-error-msg" style="display:none">
<ul></ul>
</div>
</div>
</div>
【问题讨论】:
-
您尝试删除
style="display:none"看看是否有效? -
您在 addCategoryAjax() 中调用了一次 empty() 方法,但何时再次调用 addCategoryAjax()?
-
在 ajax 调用
$('.print-error-msg ul').empty();之前你已经这样做了,所以必须清楚你的 ul 。当你成功时,问题可能就在这里,你像这样附加$(".print-error-msg").append('<li>'+data.success+'</li>');应该附加在ul -
你试过
$('.print-error-msg ul li').remove();吗? -
@DavidJorHpan 我把它放在首位,因为该 ajax 来自按钮提交。每次单击按钮时,我都想从 .print-error-msg div 中清除
- 的 ul 元素
标签: javascript jquery html css ajax