2009-07-08 8 views
21

Ich benutze Firefox und ich habe einige Foren gelesen, die behaupten, dies funktioniert nicht in Firefox, aber es hat für mich für die letzten Tage funktioniert, aber funktioniert nicht mehr und ich kann nicht herausfinden, warum.document.getElementById ("tweetform"). Submit ist keine Funktion?

Ich mache eine AXAX POST Anfrage mit einem IFrame. Wenn ich die Antwort bekommen verwende ich diese:

function startLoad(){ 
    $.get("update.php", function(data){ 
      if(data==''){ 
       startLoad(); 
      } 
      else{ 
       document.getElementById("tweetform").submit(); 
      } 
    }); 
} 

jedoch von Firebug, ich diese:

document.getElementById("tweetform").submit is not a function 
[Break on this error] document.getElementById("tweetform").submit(); 

ich einreichen wissen vorhanden ist, aber was ist hier los?

+1

Existiert die Element-Tweetform? Ist es eine Form? – seth

+0

Können Sie (document.getElementById ("tweetform")) alarmieren und überprüfen, ob es ein Formular zurückgibt? – Pradeep

+0

Ja, es gibt eine Tweetform und diese Warnung gibt zurück: [object HTMLFormElement] – Abs

Antwort

78

Meine Vermutung wäre, dass Sie ein Element in der Form haben, die „Eintragen“ genannt wird (möglicherweise ein <button> oder <input type="submit">, und dass „.submit“ ist eine Referenz auf dieses Element abzurufen, anstatt die Memberfunktion "submit()". Wenn dies der Fall ist, versuchen, dieses Element zu etwas umbenennen anderes (zB "submit_button").

+6

Guter Anruf. Ich bin schon einmal davon gebissen worden. – harto

+0

Wir haben ein Genie hier! :) Du hast recht, ich hatte einen Button mit dem Namensattribut "submit"! Aber was nutzt getElementById, wenn es nicht auf dieses Element verweist! : P – Abs

+0

Es tut. Ihr Problem ist, dass "myForm.submit" ein anderes Element und keine Funktion ist, die das Formular übermittelt. – Quentin

-1

Ich denke, Sie verwenden jQuery.

Versuchen Sie es stattdessen.

$("#tweetform").submit(); 
+1

Das ist dasselbe wie document.getElementById ("tweetform"). Wenn das fehlschlägt, macht das Ausführen des jQuery-Äquivalents keinen Unterschied. – ichiban

+0

Und trotzdem stimmen die Leute immer noch ab. Lächerlich. –

+0

gut .. diese Art von Fehler, die der Typ hatte, wäre nicht mit der Syntax, die ich empfohlen habe, passiert. –

-4

Verwenden document.forms [ 'tweetform']. submit() statt

+4

Zugriff auf das HTMLFormElement-Objekt ein anderes Der Weg wird nicht dazu führen, dass die Methode submit magisch zu arbeiten beginnt. – Quentin

4

Jason Musgrove erklärte die gut ausstellen.

können Sie eine native einreichen Methode von HTMLFormElement verwenden, um ein Problem zu umgehen:

HTMLFormElement.prototype.submit.call($('#tweetform')[0]); 
0

Eigentlich seine genug, um Ihren < input name = "submit"/>, um etwas anderes zu benennen und es funktioniert.

Verwandte Themen