2016-05-27 4 views
0

Das ist mein Code, warum habe ich immer diesen Fehler? Es gibt keine Schleife in meinem Code. Versuchen Sie einen anderen Browser, aber ich habe das gleiche Ergebnis.Maximale Call-Stack ist übertroffen

$(document).on('click', '#add_sup_btn', function() { 
       var data = { 
        nama : document.getElementById("name_sup"), 
        alamat : document.getElementById("address_sup"), 
        phone : document.getElementById("phone_sup"), 
        email : document.getElementById("email_sup"), 
        name_pic : document.getElementById("name_pic"), 
        phone_pic : document.getElementById("phone_pic"), 
        email_pic : document.getElementById("email_pic") 
       } 
       sendData(data); 
      }); 

     function sendData(param) { 
      $.ajax({ 
       type : 'POST', 
       url : 'upload/add_suplier', 
       dataType : 'json', 
       data : param, 
       success :function() { 
        $('#addSuplier').hide(); 
        $('.modal-backdrop').hide(); 
        console.log(); 
       }, 
       error : function() { 
        alert('Fail'); 
       } 
      }); 
     } 
+0

Unter welchen Bedingungen erzeugt dieser Code den Fehler? Es könnte einfach zu viele Klicks sein! –

+0

Ein schneller Test bringt mir keine Fehler. Bitte geben Sie weitere Informationen an. –

+1

Sind das alle Felder eines Formulars? Sie können 'var data = $ (" # formid "). Serialize()' verwenden, um alle auf einmal zu erhalten. – Barmar

Antwort

2

Sie versuchen, DOM-Elemente als JSON-Anforderung zu senden. DOM-Elemente können nicht auf diese Weise codiert werden, und wenn sie könnten, würden sie viel zu viele Informationen enthalten (Breite? Höhe? Event-Handler? Kind- und Elternknoten? Usw.). In der Tat wird der spezifische Fehler, den Sie erhalten, wahrscheinlich durch die rekursive Verschachtelung von Kindern verursacht, die auf Eltern und Eltern auf Kinder in der DOM-Struktur zeigen.

Verwenden Sie stattdessen das value Attribut (oder je nachdem, welcher enthält die eigentlichen Informationen Sie senden möchten) in data einrichten:

data.nama : document.getElementById("name_sup").value 

zum Beispiel.

Verwandte Themen