jQuery изменить URL формы отправки
Я хочу изменить 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">
<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
Попробуйте использовать это:
$(".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
.
Ответ 2
Отправьте данные из формы:
$("#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