【问题标题】:Jquery Django Add fields (or hide and show) with the value of a fieldJquery Django 使用字段的值添加字段(或隐藏和显示)
【发布时间】:2017-07-18 09:43:28
【问题描述】:

所以我在 Django 中编程,我希望使用 Choice 字段的值出现一个新字段。 所以我在我的 Html 模板中有这个

<script type="text/javascript">

  $( document ).ready(function() {
  if( $('#{{clinic_details.parity}}' == 'AtleastOne' ) ){
    $('#paritefield').show();
  }else{
  $('#paritefield').hide();
  }
 });

 </script>
         <div class="form-group">
           <div id="require"> 
           {% csrf_token %}
           {{ clinic_details.as_p}}
           {{ ClinicForm.}}
            </div>
         </div>
         <div class="form-group">
          <div id="paritefield">

          {{ parityfield.as_p }} 

         </div>
         </div>

在 forms.py 我有

class ClinicForm(forms.Form):
    SELECT_ETHNICITY = (('1','Europe and North Africa'),('2','East-Asian'),)
    origin = forms.ChoiceField(widget=forms.Select, 
    choices=SELECT_ETHNICITY, label ="Origin")
    SELECT_DIABETE = (('1','None'),('2','Not documented'),)
    diabete = forms.ChoiceField(widget=forms.Select, 
    choices=SELECT_DIABETE, label ="Diabetes")
    SELECT_PARITY = (('None','None'),('AtleastOne','At least One'),)
    parity = forms.ChoiceField(widget=forms.Select, 
    choices=SELECT_PARITY, label ="Parity")
    fields = ['origin', 'diabete',]

class ParityfieldForm(forms.Form):
    SELECT_PARITYFIELD = (('1','None'),('2','Not documented'),)
    parityfield= forms.ChoiceField(widget=forms.Select, choices=SELECT_DIABETE, label ="Parity field")

最后在 view.py 我有

def form_view(request):
    clinic_details = ClinicForm(request.POST or None)
    parityfield = ParityfieldForm(request.POST or None)
    title="Form"
    if clinic_details.is_valid():
       fsv = clinic_details.save(commit=False)
    return render(request,"template.html",{"clinic_details":clinic_details, "parityfield":parityfield, "title": title})

So I want that when the value of the Choice field parity is 'AtleastOne' it shows another field but without refreshing the page, Thanks to Jquery.

【问题讨论】:

    标签: javascript jquery python django


    【解决方案1】:

    为什么需要 Jquery? 您可以尝试在渲染页面时检查该值,如果等于AtleastOne,则可以添加该字段。

    <div class="form-group">
        <div id="require"> 
               {% csrf_token %}
               {{ clinic_details.as_p}}
        </div>
    </div>
    {% if clinic_details.parity == 'AtleastOne' %}
       <div class="form-group">
           <div id="paritefield">
             {{ parityfield.as_p }} 
           </div>
       </div>
    {% endif %}
    

    【讨论】:

    • 谢谢!但这似乎不起作用。如果我想要一个 ChoiceField 的结果,我只需要做 form.field 而不是 form.field.value 或其他事情吗?
    猜你喜欢
    • 1970-01-01
    • 2012-03-04
    • 2012-12-21
    • 2014-05-13
    • 1970-01-01
    • 2012-03-11
    • 1970-01-01
    • 2013-07-23
    • 2017-06-06
    相关资源
    最近更新 更多