【问题标题】:Modal form initial field模态表单初始字段
【发布时间】:2020-09-10 01:05:47
【问题描述】:

在我的应用程序中有一个更新项目的表单。

用户使用下拉字段更新它。如果下拉列表中没有所需的值,他可以添加自己的值。

它是通过弹出引导模式形式完成的。问题是,如果提交了模态表单,用户会被重定向到表单视图,但我们已经输入的所有值都会消失。

我不是在寻找现成的解决方案,而是在寻找如何制作它的提示,因为我正在学习并且我现在想知道应该如何正确地完成它。

  1. 单击“新人”打开模态表单。我不想因为一个人属于子公司而两次选择子公司。

  1. 如果添加了新用户,用户填写的所有值都会消失,因为我正在从模式重定向到用户开始更新的点。

当用户选择一个新的人员表单下拉列表时,模式表单打开:

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">&times;</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>

【问题讨论】:

    标签: jquery django


    【解决方案1】:

    问题在于表单/输入的方法。 删除输入的类型提交并将您的表单更改为:

    <form onsubmit="return null" />
    
    <input id="submit" value="save" />
    

    【讨论】:

    • 使用这个我可以避免重定向用户并输入数据库?
    • 嗨,这在我的示例中不起作用。我什至没有找到任何关于提交时返回 null 的信息。
    猜你喜欢
    • 2015-06-22
    • 1970-01-01
    • 2021-04-13
    • 1970-01-01
    • 2021-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多