2013-06-06 13 views
27

Desidero modificare l'URL al quale il modulo viene inviato al momento del clic, come mostrato di seguito. Di seguito è quello che ho provato ma non funziona.jquery modifica l'URL del modulo invia

<form action="" method="post" class="form-horizontal" id="contactsForm" enctype="multipart/form-data"> 
    <div class="widget-content"> 

    <div class="btn-group"> 
     <button data-toggle="dropdown" class="btn dropdown-toggle"> &nbsp; 
     <span class="icon-folder-open icon-large"></span> 
     Move To <span class="caret"></span> 
     </button> 
     <ul class="dropdown-menu"> 
     {% for x,y in actionsForm.fields.move_to.choices %} 
     <li><a class="move_to" id="{{ x }}" href="#">{{ y }}</a></li> 
     {% endfor %} 

<script> 
    $(document).ready(function() { 
     $(".move_to").on("click", function() { 
      $('#contactsFrom').attr('action', "/test1"); 
      $("#contactsFrom").submit(); 
      e.preventDefault(); 
     }); 
    }); 
</script> 
+1

Qual è il problema che si trovano ad affrontare? – pvnarula

+1

BTW. Hai un errore di battitura nel tuo ID: #contactsFrom - Lo prendo per essere #contactsForm –

+0

sì ben individuato. grazie – GrantU

risposta

57

Prova ad usare questo:

$(".move_to").on("click", function(e){ 
    e.preventDefault(); 
    $('#contactsForm').attr('action', "/test1").submit(); 
}); 

Spostare l'ordine in cui si utilizza .preventDefault() potrebbe risolvere il problema. Inoltre non hai utilizzato function(e) quindi e.preventDefault(); non funzionava.

Qui funziona: http://jsfiddle.net/TfTwe/1/ - prima di tutto, fare clic su "Controlla attributo azione". collegamento. Riceverai un avviso con il numero undefined. Quindi fai clic su "Imposta attributo azione". e fai clic su "Verifica attributo azione". ancora. Vedrai che l'attributo dell'azione del modulo è stato impostato correttamente su /test1.

+1

Vedo, "e" è ora passato ma ora sembra non funzionare affatto, nessun errore. è prevenireDefault semplicemente fermando tutto? – GrantU

+0

Vedo, mi dispiace fosse un tipo o – GrantU

0

inviare i dati dal modulo:

$("#change_section_type").live "change", -> url = $(this).attr("data-url") postData = $(this).parents("#contract_setting_form").serializeArray() $.ajax type: "PUT" url: url dataType: "script" data: postData