2011-12-14 9 views
6

Questo non sembra debba essere troppo difficile da realizzare, ma sono di fretta e ho cercato una risposta semplice. Devo inviare un modulo al caricamento della pagina. Questa è la mia funzione di invio AJAX che funziona bene. Ho solo bisogno di capire come attivarlo sul caricamento della pagina.Come faccio ad attivare l'invio di un modulo al caricamento della pagina usando Jquery

Qualsiasi aiuto è molto apprezzato!

$("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; 
    }); 

risposta

6

se si chiama $().submit() avvia l'azione; $().submit(function) associa un gestore all'evento di invio.

Puoi comunque saltare l'invio e chiamare semplicemente il metodo Ajax direttamente.

$(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

chiamata $("#seller-form").submit() sulla forma e questo attiverà l'evento Invia.

0

Perché non

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

effettivamente presentare il modulo a caricamento della pagina, si potrebbe scrivere qualcosa di simile

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

Ma se quello che stai cercando di fare è solo per eseguire la stessa azione che avresti altrimenti eseguito quando il modulo è stato inviato, quindi forse non vuoi inviare il modulo, ma solo per farlo:

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'); 

}); 

È possibile utilizzare la funzione .trigger() per attivare l'evento submit nel modulo. Ho incatenato le chiamate in modo che il modulo debba essere selezionato una sola volta. Nota, assicurati di impostare il gestore eventi submit prima di attivare l'evento submit.

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

+0

Ok. Ciò ha funzionato, tuttavia mi sembra di essere preso in un ciclo infinito di sottomissioni. –

+0

@ VaughnD.Taylor Il codice precedente non dovrebbe essere ripetuto, dopo che la funzione '.trigger()' viene chiamata il gestore di eventi 'submit' verrà eseguito che non innesca un evento' submit'. Quindi c'è probabilmente un altro codice personalizzato che hai scritto che sta facendo casino con il flusso. – Jasper

+0

È molto probabile che si effettui il ciclo perché si sta postando il modulo su se stesso. Potrebbe essere necessario inserire un blocco if() attorno a .trigger() e taggare l'URL con un parametro in modo che non possa essere pubblicato nuovamente. – rkw

0

utilizzare jQuery trigger() funzione per attivare pubblica un evento nel vostro evento document.ready

0

non so se questo è quello che stai chiedendo

$(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; 
    }); 
}); 
Problemi correlati