2017-02-22 2 views
1

Ich versuche, eine Seite mit jquery.load() Methode zu füllen. Das Laden funktioniert einwandfrei, aber ein Formular im neu geladenen Teil verdoppelt das Verhalten beim Senden des Ereignisses.Jquery Load ist Duplizieren Verhalten in Django Vorlage

Relevant jquery Teil:

$('#settings').on('click',function(event){ 
      var tax_submit_url = "{% url 'clinic_tax_submit' %}"; 
      $('.right_col:visible').load(tax_submit_url); 
      return false; 
     }); 

HTML-Teil (Innen dashboard.html)

<div id="sidebar-menu" class="main_menu_side hidden-print main_menu"> 
    <div class="menu_section"> 
    <ul class="nav side-menu"> 
     <li><a href="{% url 'clinic:clinic_dashboard' %}"><i class="fa fa-home"></i> Home </a></li> 
     <li><a><i class="fa fa-edit"></i> Appointments <span class="fa fa-chevron-down"></span></a> 
     <ul class="nav child_menu"> 
      <li id="doctors"><a>Doctors<span class="fa fa-chevron-down"></span></a> 
      <ul class="nav child_menu"> 
       {% for membership in memberships %} 
       <li class="sub_menu membership_button" id="membership_{{membership.id}}" data="{% url 'clinic_doctor_scheduler' membership.doctor.slug %}"> 
       <a> 
       <span><h6 style="margin:0">{{ membership.doctor }}</h6></span> 
       <span style ="color:#1abb9c;"><small>{{ membership.doctor.doctorSpecial }}</small></span> 
       </a> 
       </li> 
       {% endfor %} 
      </ul> 
      </li> 
     </ul> 
     </li> 
     <li><a><i class="fa fa-desktop"></i> Billing & Invoicing <span class="fa fa-chevron-down"></span></a> 
     <ul class="nav child_menu"> 
      <li id="invoicing_summary"><a> Invoicing Summary </a></li> 
      <li id="settings"><a> Settings </a></li> 
     </ul> 
     </li> 
    </ul> 
    </div> 
</div> 
<!-- /sidebar menu --> 
<div class="right_col" role="main"> 
</div> 

Formular in template

<div class="col-xs-4" style="float:right;"> 
    <h3>Add Another Tax</h3> 
    <br> 
    <form class="taxes_form" method="POST" action=""> 
     {{ taxes_form.as_p }} 
     <button class="primaryAction btn-success" type="submit" style="width:100%;">Submit</button><br/> 
    </form> 
    <div class="alert alert-success" role="alert" style="display:none !important;"> 
    <button type="button" class="close" aria-label="Close"><span aria-hidden="true">&times;</span></button> 
    <strong>Success!</strong> You have added a tax successfully! 
    </div> 
</div> 

Ansicht taxes.html zu machen, die in dashboard.html geladen werden

def clinic_tax_submit(request): 
    print "inside clinic tax submit" 
    if request.user.is_authenticated(): 
     invoice_taxes = Invoice_taxes.objects.filter(clinic_id=request.user.clinic.id) 
     context = { 
      'invoice_taxes': invoice_taxes, 
      'taxes_form': TaxesForm, 
     } 
     return render(request,'clinic/taxes.html',context) 
    else: 
     raise Http404() 

Antwort

0

Obwohl dies ein hacky Weg, Dinge zu tun, wenn Sie event.stopImmediatePropagation nichts anderes finden, verwenden() auf Das Klickereignis, das doppeltes Verhalten hervorruft .. !!

+0

Danke. Das hat funktioniert..!! –