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。然后单击“设置操作属性”。并单击“检查操作属性”。再次。您会看到表单的 action 属性已正确设置为/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 回答