2011-01-12 12 views
13

Voglio usare il seguente ancoraggio per inviare un modulo con jquery a Spring. Come è fatto?Come posso usare un tag di ancoraggio per inviare un modulo con jquery

<a target="" title="" class="" href="">Save</a> 

Ho provato questo, in cui requestNew è la mia forma:

$(document).ready(function(){ 
    $("a").click(function(){ 
    $("#requestNew").submit(function(){ 
     $.post("../acctRequests", $("#requestNew").serialize()); 
     }); 
    }); 
}); 

non sembra andare da nessuna parte.

risposta

20

Si sta aggiungendo un nuovo gestore di eventi; tutto ciò che devi fare è attivare quelli esistenti e le funzionalità native del browser:

$(document).ready(function(){ 
    $("a").click(function(){ 
    $("#requestNew").submit(); 
    }); 
}); 
+0

che funziona ... grazie per l'aiuto – coder

4

Assegnare il gestore di invio al di fuori del clic. Quindi chiamalo dal clic.

$(document).ready(function(){ 
     // Binds the submit handler to the #requestNew form 
    $("#requestNew").submit(function(){ 
     $.post("../acctRequests", $("#requestNew").serialize()); 
    }); 
    $("a").click(function(e) { 
     $("#requestNew").submit(); // calls the submit handler 
     e.preventDefault(); // Prevents the default behavior of the link 
    }); 
}); 
+0

Questo è il modo corretto. La risposta di Lonesomeway (quella accettata) non ha funzionato con il mio browser in quanto il comportamento predefinito del tag di ancoraggio non è stato nascosto, ricaricando la pagina, perdendo successivamente i dati dei post. – eggmatters

0

se si aggiunge un id per l'ancora è possibile inviare il modulo nella funzione clic:

<a target="" title="" class="" href="" id="saveButton">Save</a> 
$(document).ready(function(){ 
    $('#saveButton').click(function(){ 
    $("#requestNew").submit(); //if requestNew is the id of your form 
    }); 
}); 

Se si sta tentando di presentare con l'Ajax che è una soluzione diversa, ma io non sono sicuro se questo è ciò che si desidera in base alla tua domanda

6

Per favore usate questo

<a href="javascript:document.YOUR_FORM_NAME.submit()"> Submit</a> 

<form name="YOUR_FORM_NAME" action="YOUR_ACTION_PAGE_URL" method=POST> 
      <input type="text" name="YOUR_INPUT_NAME" value="YOUR_INPUT_VALUE"/> 
     </form> 

Sostituire "Y OUR_ACTION_PAGE_URL" con la vostra azione mirata url

4

HTML

<form...> 
    ... 
    <a data-role="submit">Save</a> 
</form> 

jQuery

$(function(){ 
    $("[data-role=submit]").click(function(){ 
     $(this).closest("form").submit(); 
    }); 
}); 
0

il modo più semplice è questa:

<a href="#" onclick="submit()">Submit</a> 
Problemi correlati