【发布时间】:2020-09-10 01:05:47
【问题描述】:
在我的应用程序中有一个更新项目的表单。
用户使用下拉字段更新它。如果下拉列表中没有所需的值,他可以添加自己的值。
它是通过弹出引导模式形式完成的。问题是,如果提交了模态表单,用户会被重定向到表单视图,但我们已经输入的所有值都会消失。
我不是在寻找现成的解决方案,而是在寻找如何制作它的提示,因为我正在学习并且我现在想知道应该如何正确地完成它。
- 单击“新人”打开模态表单。我不想因为一个人属于子公司而两次选择子公司。
- 如果添加了新用户,用户填写的所有值都会消失,因为我正在从模式重定向到用户开始更新的点。
当用户选择一个新的人员表单下拉列表时,模式表单打开:
jQuery:
$("#id_salesPersonDistributor").change(function () {
var url = $("#subsidiaryForm").attr("data-salesPersonsDistributorContact-url");
var salesPersonDistributorId = $(this).val();
var id_sales = $(this).children(":selected").attr("id");
if (id_sales == "new") {
$("#id_salesPersonDistributor").modalForm({
formURL: "{% url 'new_sales_person_distibutor' VCIUpdate %}"
});
} else {
$.ajax({
url: url,
data: {
'salesPersonDistributor': salesPersonDistributorId
},
success: function (data) {
$("#salesPersonsDistributorContact").html(data);
}
});
}
});
view.py
class NewSalesPersonDistributor(BSModalCreateView):
template_name = 'newsalespersondistributor.html'
form_class = NewSalesPersonDistributor
def get_success_url(self):
VCInumber = self.kwargs['pk']
return reverse_lazy('VCIUpdate', kwargs={'pk': VCInumber})
HTML
<form method="post" id="subsidiaryForm" name="text" data-subsidiaries-url="{% url 'ajax_load_subsiriaies' %}" data-salesPersonsDistributor-url="{% url 'ajax_load_salesPersonsDistributor' %}" data-salesPersonsDistributorContact-url="{% url 'ajax_load_salesPersonsDistributorContact' %}" novalidate>
<table class="table table-borderless table-condensed">
{% csrf_token %}
{{ form.as_table }}
</table>
<input type="hidden" name="build" value="{{ VCIUpdate }}">,
<input id="submit" type="submit" value="save" />
<div class="modal fade" tabindex="-1" role="dialog" id="modal">
<div class="modal-dialog" role="document">
<div class="modal-content"></div>
<input id="modalhidden" type="hidden" name="build2" value="">
</div>
模态表单的HTML
<form method="post" action="">
{% csrf_token %}
<div class="modal-header">
<h5 class="modal-title">Dodaj przedstawiciela</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
{% for field in form %}
<div class="form-group{% if field.errors %} invalid{% endif %}">
<label for="{{ field.id_for_label }}">{{ field.label }}</label>
{{ field }}
{% for error in field.errors %}
<p class="help-block">{{ error }}</p>
{% endfor %}
</div>
{% endfor %}
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
<button type="button" class="submit-btn btn btn-primary">Create</button>
</div>
</form>
【问题讨论】: