2016-07-26 4 views
0

Ich habe ein Modal mit Checkboxen und ich versuche, es für 2 Tasten wiederzuverwenden, die die Informationen zu 2 verschiedenen Stellen auf der Website ziehen.Wie verhindere ich die doppelte Übermittlung eines Formulars, indem ich ein Modal mit einer anderen Schaltfläche wiederverwende?

Das Problem ist von JQuery. Die Dinge werden übergeben, aber wenn ich Button A drücken, dann funktioniert alles gut. Wenn ich danach Button B drücke, dann wird Button A erneut einreichen und Button B wird auch übergeben. Dies geschieht auch, wenn Sie die Schaltflächen in umgekehrter Reihenfolge ausführen.

Wir haben die Hauptseite, die ein Formular ist. Dieses modale öffnet ein Formular mit Schaltfläche A. Sie wählen eine Richtlinie aus und klicken dann auf Absenden. Dies fügt es dem Hauptformular hinzu. Wenn Sie eine Richtlinie mit Schaltfläche B auswählen, werden Richtliniendateien hinzugefügt. Ähnlich, aber etwas anders aber immer noch beide verwenden das gleiche modale

Ein Modal erscheint aus dem Drücken dieser.

<a href="#" data-mylink="1" role='button' class="btn btn-default" data-toggle='modal' data-target='#policyattach_instructions1'>Button A</a> 

<a href="#" data-mylink="2" class="btn btn-default" data-toggle="modal" data-target="#policyattach_instructions1">Button B</a> 

Senden-Taste auf Modal. Es prüft, ob das Kontrollkästchen mit einem Klick auf den Button aktiviert wurde und steht JQuery nicht in den Weg.

<input type="button" name="action" class="btn btn-success ajaxifypolicies2" value="Add Policy" onClick="if(radio_checkbox_validate(document.add_policies_form,'one or more Policies & Procedures.')) { return true; } else { return false; }" /> 

JQuery:

$('#policyattach_instructions1').on('shown.bs.modal', function (e) { 
    $('#add_policies_display').html("<center style='margin-top: 25px;'>Use the search tools above to find Policies & Procedures.</center>"); 
    var btn = $(e.relatedTarget); 
    var pnpid = btn.data('mylink'); 
    //alert(pnpid); 
    if(pnpid==1){ 
    $(".ajaxifypolicies2").click(function(){ 
      alert("test98"); 
      $('[id^="add_policies_checkbox"]').each(function(i, v){ 
       if($(v).prop('checked')){ 
       var data=$(v).val(); 
       //alert(data); 
       $("#linked_pnp_instructions").append("<div id='pnpID_instruction"+data+"1'><h6><input type=hidden name=pnpID_instructions value=\'"+data+"\' />P&P #'s: "+data+" <a href='#' class='clear_pnp' id='pnpID_instruction"+data+"'>Clear</a></h6></div>"); 
       //$("#policyattach_instructions1").removeData('bs.modal'); 


       } 
      });/**/ 
      $(".clear_pnp").click(function(){ 
       var ID=this.id; 
       //alert(ID+"1"); 
       $("#"+ID+"1").remove(); 
       return false; 
      }); 
      $("#policyattach_instructions1").modal('hide'); 
    });//end ajaxifypolicies/**/ 
    } 
    else 
    { 
    $(".ajaxifypolicies2").click(function(){ 
      alert("test99"); 

      $('[id^="add_policies_checkbox"]').each(function(i, v){ 
       if($(v).prop('checked')){ 
       var data=$(v).val(); 
       //alert(data); 
       $("#linked_pnp").append("<div id='pnpIDs"+data+"1'><h6><input type=hidden name=pnpIDs value=\'"+data+"\' />P&P #'s: "+data+" <a href=# class=clear_pnp id='pnpIDs"+data+"' >Clear</a></h6></div>"); 
       //$("#policyattach_instructions1").removeData('bs.modal'); 
       // $("#policyattach_instructions1").modal('hide'); 

       } 
      });/**/ 
      $(".clear_pnp").click(function(){ 
       var ID=this.id; 
       //alert(ID+"1"); 
       $("#"+ID+"1").remove(); 
       return false; 
      }); 
      $("#policyattach_instructions1").modal('hide'); 
    });//end ajaxifypolicies/**/ 
    } 
    return false;/**/ 
});//end modal 
    $('#policyattach_instructions1').on('hidden.bs.modal', function (e) { 
     alert("asfdasf"); 
     $(this).removeData('bs.modal'); 
    }); 

Ich habe auch versucht, diese zweimal mit ajaxifypolicies2 zu versuchen und zu vermeiden:

$(".ajaxifypolicies2").click(function(){ 
     if(pnpid==1){ 
      alert("test98"); 
      $('[id^="add_policies_checkbox"]').each(function(i, v){ 
       if($(v).prop('checked')){ 
       var data=$(v).val(); 
       //alert(data); 
       $("#linked_pnp_instructions").append("<div id='pnpID_instruction"+data+"1'><h6><input type=hidden name=pnpID_instructions value=\'"+data+"\' />P&P #'s: "+data+" <a href='#' class='clear_pnp' id='pnpID_instruction"+data+"'>Clear</a></h6></div>"); 
       //$("#policyattach_instructions1").removeData('bs.modal'); 


       } 
      });/**/ 
     } 
     else 
     { 
      alert("test99"); 

      $('[id^="add_policies_checkbox"]').each(function(i, v){ 
       if($(v).prop('checked')){ 
       var data=$(v).val(); 
       //alert(data); 
       $("#linked_pnp").append("<div id='pnpIDs"+data+"1'><h6><input type=hidden name=pnpIDs value=\'"+data+"\' />P&P #'s: "+data+" <a href=# class=clear_pnp id='pnpIDs"+data+"' >Clear</a></h6></div>"); 
       //$("#policyattach_instructions1").removeData('bs.modal'); 
       // $("#policyattach_instructions1").modal('hide'); 

       } 
      });/**/ 
     } 
      $(".clear_pnp").click(function(){ 
       var ID=this.id; 
       //alert(ID+"1"); 
       $("#"+ID+"1").remove(); 
       return false; 
      }); 
      $("#policyattach_instructions1").modal('hide'); 
    });//end ajaxifypolicies/**/ 



    return false;/**/ 
});//end modal 
+0

Was genau möchten Sie hier tun? Kann deinen Beitrag nicht verstehen – omoabobade

+0

Wir haben die Hauptseite, die ein Formular ist. Dieses modale öffnet ein Formular mit Schaltfläche A. Sie wählen eine Richtlinie aus und klicken dann auf Absenden. Dies fügt es dem Hauptformular hinzu. Wenn Sie eine Richtlinie mit Schaltfläche B auswählen, werden Richtliniendateien hinzugefügt. Ähnlich, aber ein bisschen anders, aber beide benutzen das gleiche Modal. Ich werde das auf die Frage aktualisieren. –

+0

jede Chance, es zu vereinfachen und es in einen Plünderer oder Geige zu setzen? Es hilft wirklich, die Probleme zu beheben. –

Antwort

0
$('#policyattach_instructions1').on('shown.bs.modal', function (e) { 
       $('#add_policies_display').html("<center style='margin-top: 25px;'>Use the search tools above to find Policies & Procedures.</center>"); 

// alert("testy"); 
    var btn = $(e.relatedTarget); 
    var pnpid = btn.data('mylink'); 
    //var pnpid = $(this).data('mylink'); 
    //alert(pnpid); 

    $(".ajaxifypolicies2").click(function(){ 

     alert(pnpid); 
     if(pnpid==1){ 
      alert("test98"); 
      pnpid = (""); 
      $('[id^="add_policies_checkbox"]').each(function(i, v){ 
       if($(v).prop('checked')){ 
       var data=$(v).val(); 
       //alert(data); 
       $("#linked_pnp_instructions").append("<div id='pnpID_instruction"+data+"1'><h6><input type=hidden name=pnpID_instructions value=\'"+data+"\' />P&P #'s: "+data+" <a href='#' class='clear_pnp' id='pnpID_instruction"+data+"'>Clear</a></h6></div>"); 
       //$("#policyattach_instructions1").removeData('bs.modal'); 

       } 
      });/**/ 
     } 

entfernt die Else If und machte es zu einem wenn auch nur

 if(pnpid==2) 
     { 
      alert("test99"); 

Verhindern, dass mehrere Werte von früheren Vorgängen übermittelt wurden. Pnpid = ("");

  pnpid = (""); 
      $('[id^="add_policies_checkbox"]').each(function(i, v){ 
       if($(v).prop('checked')){ 
       var data=$(v).val(); 
       //alert(data); 
       $("#linked_pnp").append("<div id='pnpIDs"+data+"1'><h6><input type=hidden name=pnpIDs value=\'"+data+"\' />P&P #'s: "+data+" <a href=# class=clear_pnp id='pnpIDs"+data+"' >Clear</a></h6></div>"); 
       //$("#policyattach_instructions1").removeData('bs.modal'); 
       // $("#policyattach_instructions1").modal('hide'); 
       } 
      });/**/ 
     } 
      $(".clear_pnp").click(function(){ 
       var ID=this.id; 
       //alert(ID+"1"); 
       $("#"+ID+"1").remove(); 
       return false; 
      }); 
      $("#policyattach_instructions1").modal('hide'); 
    });//end ajaxifypolicies/**/ 



    return false;/**/ 
});//end modal 
Verwandte Themen