2009-07-08 29 views
21

Tôi đang sử dụng Firefox và tôi đã đọc một số diễn đàn tuyên bố điều này không hoạt động trong firefox nhưng nó đã hoạt động cho tôi trong vài ngày qua nhưng đã ngừng hoạt động và tôi không thể hiểu tại sao.document.getElementById ("tweetform"). Submit không phải là một chức năng?

Tôi thực hiện yêu cầu POST AXAX bằng cách sử dụng IFrame. Khi tôi nhận được câu trả lời Tôi sử dụng này:

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

Tuy nhiên, từ con đom đóm, tôi có được điều này:

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

Tôi biết trình tồn tại, nhưng những gì đang xảy ra?

+1

Biểu mẫu tweet có tồn tại không? Nó là một hình thức? – seth

+0

Bạn có thể cảnh báo (document.getElementById ("tweetform")) và kiểm tra xem nó có trả về biểu mẫu không? – Pradeep

+0

Có, biểu mẫu tweet tồn tại và cảnh báo đó trả về: [đối tượng HTMLFormElement] – Abs

Trả lời

78

My đoán sẽ được rằng bạn có một yếu tố trong hình thức mà được gọi là "submit" (có thể là một <button> hoặc <input type="submit">, và rằng ".submit" được lấy một tham chiếu đến phần tử đó, chứ không phải là trong trường hợp này, hãy thử đổi tên thành phần đó thành một thứ khác (ví dụ: "submit_button").

+6

Cuộc gọi tốt. Tôi đã bị cắn bởi điều này trước đây. – harto

+0

Chúng tôi có một thiên tài ở đây! :) Bạn nói đúng, tôi đã có một nút với thuộc tính name "submit"! Nhưng việc sử dụng getElementById là gì nếu nó không tham chiếu đến phần tử đó! : P – Abs

+0

. Vấn đề của bạn là 'myForm.submit' là một phần tử khác chứ không phải là một hàm gửi biểu mẫu. – Quentin

-1

Tôi đoán bạn đang sử dụng jQuery.

Hãy thử thay vào đó.

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

Điều đó tương tự như document.getElementById ("tweetform"), vì vậy nếu điều đó không thành công, việc chạy jQuery tương đương sẽ không tạo ra sự khác biệt. – ichiban

+0

Và mọi người vẫn bỏ phiếu. Nực cười. –

+0

cũng .. loại lỗi này mà các chàng trai đã không có happend bằng cách sử dụng cú pháp mà tôi đề nghị. –

-4

Sử dụng document.forms ['tweetform']. submit() thay vì

+4

Truy cập đối tượng HTMLFormElement khác cách không phải là sẽ làm cho phương pháp đệ trình kỳ diệu bắt đầu làm việc. – Quentin

4

Jason Musgrove giải thích phát hành tốt.

Bạn có thể sử dụng một nguồn gốc phương pháp nộp của HTMLFormElement để làm việc xung quanh một vấn đề:

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

thực tế của nó đủ để đổi tên < đầu vào của bạn = "submit"/> đến cái gì khác và nó hoạt động.

Các vấn đề liên quan