提交表单时防止网页滚动到顶部

2024-05-18 14:30:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我创建了一个通过javascript提交的表单,但每次提交表单时,网页都会滚动到顶部。我怎样才能阻止这种事情发生?。我尝试了preventDefault(),但这阻止了表单一起提交

我的表格:

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();
            );
    });

});

Tags: columnsselfformidfalse表单initfunction

热门问题