Это третий раз, когда я задаю этот вопрос, к сожалению, нет ни одного эксперта, который мог бы ответить на этот простой вопрос.
Без кода javascript метод в view.py
отлично работает как для сохранения, так и для вычисления.за одну форму.Однако, когда я использую ajax, он не работает (из-за e.preventDefault();
), вот мой код:
html
<form method="post" id="idForm" name="fmr1" action = "/myproject/save/"
enctype="multipart/form-data">
....
<input type="submit" name="save" value="Save">
<input type="submit" name="calc" value="Calculate">
</form>
js
$("#idForm").submit(function(e) {
e.preventDefault(); // avoid to execute the actual submit of the form.
var frm = $('#idForm');
$.ajax({
type: frm.attr('method'),
url: frm.attr('action'),
data: frm.serialize(),
success: function (data) {
alert(data.mylist)
},
error: function (data) {
alert("ajax fails")
}
});
});
просмотров
if request.method == 'POST' and 'calc' in request.POST:
print("runs calc form")
mylist= [5]
return JsonResponse({'mylist':mylist})
Вопрос
Теперь сложность в "calc" по запросу.POST ", поэтому он не запускается, когда я добавляю ajax или id =" idForm "в форму.
Мне нужно" 'calc' в request.POST ", так как я должен также запустить" save ".
Оба должны будут запускаться внутри одного метода в представлениях.
В чем может быть причина того, что javascript (e.preventDefault();
) мешает его правильной работе?
Как исправитьэто?