我刚刚将一个表单转换为Bootstrap模式,它工作正常,除非提交错误时模态刚刚消失。单击模态触发按钮可以使用用户的数据和错误消息备份模态。
这是我的代码:
<div class="modal fade" id="myModal" tabindex="-1" role="dialog"
aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-body">
<form method='POST' action=''>
{% csrf_token %}
{{ form.as_p }}
<input id='submit-button' type="submit" value="Submit">
</form>
</div> <!-- modal-body -->
</div>
</div>
</div>
<button class="btn btn-primary btn-lg" data-toggle="modal" data-target="#myModal">Apply now</button>
我正在使用Django,但我不认为这与它有任何关系,因为一切正常,直到我将表单包装在一个模态中。这是我的view.py:
def homepage(request):
form = MyForm(request.POST or None)
if form.is_valid():
instance = form.save(commit=False)
instance.user = request.user
instance.save()
return HttpResponseRedirect(reverse('success'))
context = {
"form": form,
}
return render(request, 'home.html', context)
有人能告诉我我做错了吗?
答案 0 :(得分:0)
提交后没有关于模态的信息,它就像第一次打开页面时一样隐藏。如果出现错误,您可以添加一些条件来打开模态。
我不知道Django,但想法是为模型添加一些参数:
if (bindingResult.hasErrors()) {
model.addAttribute("formErrors", true);
}
然后检查(我在本例中使用Thymeleaf):
<th:block th:if="${formErrors}">
<script>$('#myModal').modal('show');</script>
</th:block>