Я создал форму, которая отправляет через javascript, но каждый раз, когда я отправляю форму, веб-страница прокручивается вверх. Как мне остановить это? Я пробовал метод protectDefault (), но он не позволяет отправлять форму всем вместе.
Моя форма:
class myform(forms.Form):
columns = forms.MultipleChoiceField(required=False, label=False)
def __init__(self, columnList, *args, **kwargs):
self.columnList = columnList
super(myform, self).__init__(*args, **kwargs)
self.fields['columns'].widget = forms.SelectMultiple()
self.fields['columns'].choices = self.columnList
Моя HTML:
<p> Select tables and download as excel file:</p>
<form id="myform" method="POST" name="Tables_selected">
{% csrf_token %}
{{ form.as_p }}
<input id="mybutton" type="button" class="btn btn-info" value="Download excel" onclick="redirect()">
</form>`
Javascript:
<script type="text/javascript" >
$(function(){
$('#id_columns').change(function(){
$('#myform').submit();
return false;
});
});
function redirect() {
location.href="{% url 'download_excel' %}";
}
</script>
Я пробовал это, но это предотвращает отправку формы, а также перенаправление:
$(function(){
$('#id_columns').change(function(){
$('#myform').submit(function(e) {
e.preventDefault();
);
});
});