Изменение действия формы на основе значения опции select
Я пытаюсь изменить действие url_for формы на основе выбранного варианта:
Шаблон Django:
<form name="List_select" id="List_select" method ="POST">
<div class="modal-body">
<label>Move Item</label>
<select class="form-control" id="Lists">
<option value="{{ url_for('complete_item', titleID = item.id) }}">Move to Done</option>
<option value="{{ url_for('doing_item', titleID = item.id) }}">Move to Doing</option>
<option value="{{ url_for('revert_item', titleID = item.id) }}">Move to To Do</option>
</select>
<input class="btn btn-primary" type="submit" value="Move">
</div>
JQuery
$(function() {
$(".Lists").change(function(){
value = $(this).val()
$('.List_select').attr('action', value)
})
});
Когда я пытаюсь выбрать опцию и нажать кнопку Move, однако я получаю:
Метод не разрешен Метод не разрешен для запрашиваемого URL.
Вы можете получить выбранную опцию с помощью jQuery и получить значение выбранной опции и передать его действию формы. Вот так:
HTML:
<form name="List_select" id="List_select" method="POST">
<div class="modal-body">
<label>Move Item</label>
<select id="Lists" class="form-control Lists">
<option value="{{ url_for('complete_item', titleID = item.id) }}">Move to Done</option>
<option value="{{ url_for('doing_item', titleID = item.id) }}">Move to Doing</option>
<option value="{{ url_for('revert_item', titleID = item.id) }}">Move to To Do</option>
</select>
<input class="btn btn-primary" type="submit" value="Move">
</div>
</form>
jQuery:
$(".Lists").change(function(){
$('#List_select').attr('action', $('.Lists').find(":selected").val())
})
Измените это на кнопки:
<label>Move Item to:</label>
<form style="display: inline-block;" method="POST" action="{{ url_for('revert_item', titleID = item.id) }}">
<input class="btn btn-primary" type="submit" name="revert_item" value="To Do" />
</form>
<form style="display: inline-block;" method="POST" action="{{ url_for('doing_item', titleID = item.id) }}">
<input class="btn btn-primary" type="submit" name="doing_item" value="Doing" />
</form>
<form style="display: inline-block;" method="POST" action="{{ url_for('complete_item', titleID = item.id) }}">
<input class="btn btn-primary" type="submit" name="complete_item" value="Done" />
</form>