以下是我的代码,我想用Ajax实现页面的传递信息,但当数据为空提交时,页面输入框下面不显示错误提示,我代码中明明写了的
后端代码
@csrf_exempt
def task_add(request):
"""任务添加"""
print(request.POST)
# 1.用户发送过来的数据进行校验(ModelForm进行校验)
form = TaskModelForm(data=request.POST)
if form.is_valid():
form.save()
data_dict = {"status": True}
return HttpResponse(json.dumps(data_dict))
data_dict = {"status": False, 'error': form.errors}
return HttpResponse(json.dumps(data_dict, ensure_ascii=False))
前端代码
<div class="container">
<div class="panel panel-default">
<div class="panel-heading">
<span class="glyphicon glyphicon-plus-sign" aria-hidden="true"></span> 新建任务
</div>
<div class="panel-body">
<div class="panel-body">
<div>
<form id="formAdd" novalidate>
<!--<div class="clearfix">-->
{% for field in form%}
<!--<div class="col-xs-6">-->
<div class="form-group" style="position:relative;margin-bottom:20px;" >
<label> {{ field.label}}</label>
{{field}}
<span class="error-msg" style="color:red;position:absolute"></span>
</div>
<!--</div>-->
{%endfor%}
<!--</div>-->
<button id="btnAdd" type="button" class="btn btn-primary">保存</button>
</form>
</div>
</div>
</div>
</div>
</div>
{% endblock %}
{% block time %}
<script type="text/javascript">
$(function() {
<!--页面框架加载完成后代码自动执行-->
binBtnAddEvent();
})
function binBtnAddEvent() {
$("#btnAdd").click(function () {
$(".error-msg").empty();
$.ajax({
url:"/task/add/",
type:"POST",
data:$("#formAdd").serialize(),
taType:"json",
success :function (res) {
if (res.status){
alert("添加成功")
}else{
$.each(res.error,function(name,data){
$('#id_'+name).next().text(data[0]);
})
}
}
})
})
}
</script>