46

以下に示すように、クリック時にフォームが送信される URL を変更したいと考えています。以下は私が試したものですが、うまくいきません。

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

2 に答える 2

110

これを使用してみてください:

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

使用する順序を変更すると.preventDefault()、問題が解決する場合があります。また、使用しなかったfunction(e)ため、機能していませe.preventDefault();んでした。

http://jsfiddle.net/TfTwe/1/ - まず、「アクション属性の確認」をクリックします。リンク。というアラートが表示されますundefined。次に、[アクション属性を設定] をクリックします。[アクション属性を確認] をクリックします。また。フォームのアクション属性が正しく設定されていることがわかります/test1

于 2013-06-06T15:43:24.367 に答える
1

フォームからデータを送信します。

$("#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
于 2015-11-06T14:41:20.670 に答える