2013-06-06 13 views
27

Ich möchte die URL ändern, die das Formular nach Klicken auf, wie unten angezeigt wird, gesendet wird. Unten ist, was ich versucht habe, aber es funktioniert nicht.jquery ändern url des Formulars submit

<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

Was ist das Problem Sie konfrontiert sind? – pvnarula

+1

BTW. Sie haben einen Tippfehler in Ihrer ID: #contactsFrom - Ich nehme an, es soll #contactsForm –

+0

ja gut entdeckt werden. danke – GrantU

Antwort

57

Versuchen Sie dies mit:

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

Verschieben der Reihenfolge, in der Sie .preventDefault() verwenden könnte Ihr Problem beheben. Sie haben auch function(e) nicht verwendet, so dass e.preventDefault(); nicht funktionierte.

Hier funktioniert es: http://jsfiddle.net/TfTwe/1/ - zunächst, klicken Sie auf die 'Check-Aktion Attribut.' Verknüpfung. Sie erhalten eine Warnung, die undefined sagt. Klicken Sie dann auf "Aktionsattribut festlegen". und klicken Sie auf "Aktionsattribut überprüfen". nochmal. Sie werden sehen, dass das Aktionsattribut des Formulars korrekt auf /test1 festgelegt wurde.

+1

Ich sehe, 'e' ist jetzt vergangen, aber es scheint jetzt nicht zu laufen, keine Fehler. ist preventDefault nur alles zu stoppen? – GrantU

+0

Ich sehe, Entschuldigung, es war ein Typ o – GrantU

0

die Daten aus dem Formular senden:

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

Verwandte Themen