2012-04-11 41 views
5
var makeField = function(name, value) { 
    return $('<input />').attr({ 
     type: 'hidden', 
     name: name, 
     value: value 
    }); 
}; 

$('.login').on('click', function() { 
    var form = $('<form />').attr('method', 'POST'); 

    form.append(makeField('n0', 'data1')); 
    form.append(makeField('n1', 'data2')); 
    form.append(makeField('n2', 'data3')); 

    $(document).append(form); 
    form.submit(); 
}); 

Mã trên hoạt động tốt trong Safari, Chrome và Opera nhưng firefox bỏ qua form.submit();. Tôi đã thử nghiệm mã ở trên bằng cách thêm console.log('...'); ở trên và bên dưới cuộc gọi gửi và nó thực hiện mà không có lỗi. Tôi cũng đã thử gọi số $(form).submit(); và tôi nhận được kết quả không mong muốn tương tự.Trình gửi biểu mẫu Firefox jQuery không hoạt động

Có ai đã từng gặp phải điều này trước đây hoặc có giải pháp không?

+0

Hãy jQuery thân thiện hơn, hãy thử thay đổi 'var hình thức = document.createElement ('form'); 'cho' dạng var = $ ("

") .attr ('phương thức', 'POST'); ' – SpYk3HH

+0

Phần quan trọng là phụ thêm của jQuery() âm thầm không làm gì khi được gọi trên một phần tử không. –

Trả lời

5

cập nhật với mã mới của bạn

$(function() { 
    var makeField = function(name, value) { 
     return $('<input />').attr({ 
      type: 'hidden', 
      name: name, 
      value: value 
     }); 
    }; 

    $(document).on('click', '.login', function() { 
     var form = $("<form />").attr({ method: "POST" }).append(
       makeField('n0', 'data1'), 
       makeField('n1', 'data2'), 
       makeField('n2', 'data3') 
      ); 

     // just adding a callback on submit here to show it works 
     form.submit(function(e){ alert("Submitting Form"); }); 

     $("body").append(form); 
     form.submit(); 
    }); 
}) 

Xem WORKING jsFiddle in FF HERE

+0

Cảm ơn bạn đã dọn dẹp mã, nhưng điều đó không giải quyết được vấn đề firefox của tôi. –

+0

fyi chỉ cần chỉnh sửa nó với sự bùng nổ, thực sự sẽ cần phải xem thêm những gì bạn đang làm để xác định vấn đề, tôi cho rằng đó không phải là mã của bạn hoàn toàn, nhưng trong phần? – SpYk3HH

+0

Tôi đã sửa đổi mã ban đầu của mình để bao gồm các chỉnh sửa của bạn, cũng như những gì nó thực sự trông giống như và điều duy nhất thay đổi là tên và giá trị của các trường. –

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