Pytanie URL zmiany jquery formularza przesłania


Chcę zmienić adres URL, w którym formularz jest przesyłany po kliknięciu, jak widać poniżej. Poniżej jest to, co próbowałem, ale to nie działa.

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

30
2018-06-06 15:39


pochodzenie


Na czym polega problem? - pvnarula
BTW. Masz literówkę w swoim ID: #contactsFrom - Rozumiem, że ma to być #contactsForm - Lee Gunn
tak dobrze zauważony. dzięki - GrantU


Odpowiedzi:


Spróbuj użyć tego:

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

Przenoszenie porządku, w którym używasz .preventDefault() może rozwiązać Twój problem. Ty też nie skorzystałeś function(e) więc e.preventDefault(); nie działa.

Tutaj działa: http://jsfiddle.net/TfTwe/1/ - po pierwsze kliknij "Sprawdź atrybut działania". połączyć. Otrzymasz alert z informacją undefined. Następnie kliknij "Ustaw atrybut akcji". i kliknij "Sprawdź atrybut działania". jeszcze raz. Zobaczysz, że atrybut akcji formularza został poprawnie ustawiony /test1.


66
2018-06-06 15:43



Rozumiem, że "e" jest teraz przekazywane, ale teraz wydaje się, że w ogóle nie działa, bez błędów. to preventDefault po prostu zatrzymuje wszystko? - GrantU
Rozumiem, przepraszam, że to był typ o - GrantU


Wyślij dane z formularza:

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


1
2017-11-06 14:41