2016-04-12 9 views
2

Ich versuche, eine Nachricht aus dem einreichen loggt handler..and es nicht funktioniert ..Formular senden Handler nicht aufgerufen zu werden

HTML CODE

<body> 
<div class="table"> 
    <div class="thead"> 
     <div class="tr"> 
      <div class="td" style="background: #ffffff ;color:black">ABC</div> 
      <div class="td">123</div> 
     </div> 
    </div> 
    <div class="tbody"> 
     <form id="form1_id" name="sa" class="tr editing"> 
      <div class="td thead">test</div> 
      <div class="td"><input type="number" id="sa_cr1" onchange="add('form1',1)"></div> 
      <div class="td"><input type="number" id="sa_cr2" onchange="add('form1',2)"></div> 
     </form> 
     <form id="form2_id" name="bc" class="tr editing"> 
      <div class="td thead">test1</div> 
      <div class="td"><input type="number" id="bc_cr1" onchange="add('form2', 1)"></div> 
      <div class="td"><input type="number" id="bc_cr2" onchange="add('form2', 2)"></div> 
     </form> 
    </div> 
    <button type="submit" value="Store" onclick="submitForms();"> </button> 
    </div> 
</body> 

JS CODE

function submitForms(){ 
    $('#form1_id')[0].submit(); 
    return false; 
} 

$("#form1_id").on("submit", function(event) // I tried both "submit" and "onsubmit" 
{ 
     console.log("Handler for .submit() called."); 
     event.preventDefault(); 
}); 
function add(str, num){}; 

Sie können auch die aus setzen in https://jsfiddle.net/mdnak/b3z3h3jn/ Ich möchte im Grunde die console.log("Handler for .submit() called."); gecallt ... helfen bitte ...

Antwort

0
function submitForms(){ 
    $('#form1_id')[0].submit(); 
    return false; 

} 

würde senden Sie Ihre Form effektiv die Seite neu zu laden. Zuerst return false und dann das Formular absenden.

+0

Aber ich sehe nicht die Protokollmeldung in der Konsole nach der Änderung, die Sie vorgeschlagen ... Ich möchte sicherstellen, dass es funktioniert, weil ich die Daten mehrerer Formulare mit einem einzigen Klick mit ajaxSubmit api von http: /jquery.malsup.com/form/#getting-started – mdnak

0

Versuchen Sie folgendes:

$(document).ready(function(){ 

$("#submitbtn").click(function(){ 
    $('#form1_id').submit(); 
    return false; 

}); 

$("#form1_id").submit(function(event) 
{ 
     alert("Handler for .submit() called."); 
     event.preventDefault(); 
}); 
function add(str, num){}; 

}); 

Wie Sie einzigartig sind die # form1_id von der Auswahl, können Sie direkt, wie oben einreichen und keine Notwendigkeit, erstes Element davon zu bekommen, wie es wird nicht Array von Formen geben $('#form1_id')[0]

und

<button type="submit" value="Store" onclick="submitForms();"> </button> 

mit

unterhalb der Linie ersetzen
+0

Danke mein Herr ... Es löste mein Problem !! Aber ich muss immer noch herausfinden, warum der Code in Frage, obwohl es einen anderen Weg nahm, nicht funktioniert ... ist es über das Array .. [0] .. Nochmals vielen Dank! – mdnak

+0

Es gab ein paar Dinge, die ich beobachtet habe, dass '$ ('# form1_id') [0]' und andere der Knopf ist aus dem Formular-Tag, aber der Typ ist submit, wo es nicht sein sollte. seit Senden Schaltfläche sollte immer in

Tag sein, so dass, wenn Sie darauf klicken, wird es das entsprechende Formular einreichen. Aber in Ihrem Fall ist es anders, da Sie zwei Formulare haben und Sie Formulare mit Javascript bearbeiten, also brauchen wir hier keine Schaltfläche zum Absenden. Alles, was Sie brauchen, ist ein Ereignis, um den Code auszuführen, der sich um die Einreichung kümmert. – kakurala