2011-12-14 14 views
6

Nie wydaje się, że powinno być to zbyt trudne do osiągnięcia, ale jestem w pośpiechu i szukałem prostej odpowiedzi. Muszę przesłać formularz przy ładowaniu strony. To jest moja funkcja przesyłania AJAX, która działa dobrze. Po prostu muszę dowiedzieć się, jak wyzwolić go po załadowaniu strony.Jak wyzwalać przesyłanie formularzy przy ładowaniu strony za pomocą Jquery

Każda pomoc jest doceniana!

$("form#seller-agreement-form").submit(function() { 
     // we want to store the values from the form input box, then send via ajax below  
     $.ajax({ 
      type: "POST", 
      url: "http://www2.myurl.com/formhandler", 
      data: "email="+ email + "&status=" + status, 
      success: function(){ 
       $('form#seller-agreement-form').hide(function(){$('div#output').fadeIn();}); 

      } 
     }); 
    return false; 
    }); 

Odpowiedz

6

jeśli zadzwonisz $().submit() wyzwala akcję; $().submit(function) wiąże handler do zdarzenia submit.

Możesz jednak pominąć zgłoszenie i po prostu wywołać metodę ajax bezpośrednio.

$(function() { 
    $.ajax({ 
     type: "POST", 
     url: "http://www2.myurl.com/formhandler", 
     data: "email="+ email + "&status=" + status, 
     success: function(){ 
      $('form#seller-agreement-form').hide(function(){$('div#output').fadeIn();}); 

     } 
    }); 
}); 
0

Zadzwoń na $("#seller-form").submit() w formularzu, a to wywoła zdarzenie submit.

0

Dlaczego nie

function AjaxCall() { 
    // we want to store the values from the form input box, then send via ajax below  
    $.ajax({ 
     type: "POST", 
     url: "http://www2.myurl.com/formhandler", 
     data: "email=" + email + "&status=" + status, 
     success: function() { 
      $('form#seller-agreement-form').hide(function() { 
       $('div#output').fadeIn(); 
      }); 

     } 
    }); 
    return false; 
} 

AjaxCall(); 

$("form#seller-agreement-form").submit(AjaxCall); 
3

Aby właściwie przedstawić formularz na stronie obciążenia, byś napisać coś podobnego

$(function() { 
    $('#seller-agreement-form').submit(); 
}); 

ale jeśli to, co próbujesz zrobić, to po prostu wykonywać takie same działania, które w przeciwnym razie wykonałbyś, gdyby formularz został złożony, może nie chcesz przesłać formularza, ale tylko w tym celu:

function postForm() { 
    $.ajax({ 
     type: "POST", 
     url: "http://www2.myurl.com/formhandler", 
     data: "email="+ email + "&status=" + status, 
     success: function(){ 
      $('form#seller-agreement-form').hide(function(){$('div#output').fadeIn();}); 

     } 
    }); 
} 

$("form#seller-agreement-form").submit(function() { 
    postForm(); 
    return false; 
}); 

$(function() { 
    postForm(); 
}); 
3
$(function() { 
    $("form#seller-agreement-form").submit(function() { 
     // we want to store the values from the form input box, then send via ajax below  
     $.ajax({ 
      type: "POST", 
      url: "http://www2.myurl.com/formhandler", 
      data: "email="+ email + "&status=" + status, 
      success: function(){ 
       $('form#seller-agreement-form').hide(function(){$('div#output').fadeIn();}); 

      } 
     }); 
    return false; 
    }).trigger('submit'); 

}); 

Możesz użyć funkcji .trigger(), aby wywołać zdarzenie submit w formularzu. Przykułem połączenia, więc formularz musi zostać wybrany tylko jeden raz. Uwaga: przed wywołaniem zdarzenia submit należy ustawić obsługę zdarzeń.

Dokumentacja: http://api.jquery.com/trigger

+0

OK. To działało, ale wydaje mi się, że złapałem niekończącą się pętlę zgłoszeń. –

+0

@ VaughnD.Taylor Powyższy kod nie powinien się zapętlić, po wywołaniu funkcji '.trigger()' uruchomiona zostanie obsługa zdarzeń 'submit', która nie wyzwala zdarzenia' submit'. Prawdopodobnie istnieje jakiś inny niestandardowy kod, który napisałeś, który miesza się z przepływem. – Jasper

+0

Najprawdopodobniej zapętla się, ponieważ publikujesz formularz sam w sobie. Może być konieczne umieszczenie bloku if() wokół .trigger() i oznaczenie adresu URL parametrem, aby nie był wysyłany ponownie. – rkw

0

użyć jQuery trigger() funkcja wyzwolić przedstawić wydarzenie w document.ready imprezy

0

nie wiem, czy to jest to, co pytasz o

$(document).ready(function() { 
    $("form#seller-agreement-form").submit(function() { 
     // we want to store the values from the form input box, then send via ajax below  
     $.ajax({ 
      type: "POST", 
      url: "http://www2.myurl.com/formhandler", 
      data: "email="+ email + "&status=" + status, 
      success: function(){ 
       $('form#seller-agreement-form').hide(function(){$('div#output').fadeIn();}); 

      } 
     }); 
    return false; 
    }); 
}); 
Powiązane problemy