首页 > 解决方案 > 如何使用 Django 为后端解决 HTML 表单的 onLoadSubmit() 导致的无限循环

问题描述

我有一个表单,我想在页面加载后动态提交。其中一个表单字段是post_city通过 URL 预选加载的,并在许多选项中预选。Django 模板如下:

<body onload="onLoadSubmit()">
<form id="headerform" method="GET" action="{% url 'search' %}" data-action="" name="headerform" >
    <ul id="menu">
        <!-- city options -->
        <span>
            <li class="">
                <select id="post_city" form="headerform" class=""  name="h_qc" onchange ="this.submit()">
                    <option value="{{post_city}}"> 
                    {{post_city}} 
                    </option>
                    {% for city in all_p_cities %}
                    {% if city.city_name != post_city %}
                     <option value="{{city.city_name}}">
                     {{city.city_name}}
                     </option> 
                     {% endif %}
                     {% endfor %}
                </select>
            </li>
        </span>

         <!-- category options  -->
        <span>
            <li >
                <select id="catAbb" name="h_qcc">
                    <option value="{{category_name}}"> 
                    {{category_name}} 
                    </option>
                    {% for category in all_p_categories %}
                    {% if category.category_name != category_name %}
                     <option value="{{category.category_name}}">
                     {{category.category_name}}
                     </option> 
                     {% endif %}
                     {% endfor %}
                </select>
            </li>
        </span>
    </ul>
</form>

<script type="text/javascript">
    function onLoadSubmit()
    {
        document.headerform.submit();
    }
</script>
</body>

这工作得很好,只是它得到了一个无限循环。也就是说,一旦页面加载完毕,它就会无限地重新加载,我什至无法向下滚动页面。

注意:我可以简单地添加提交按钮。但是,我希望在页面加载后根据通过上一页的 URL 传递的预选选项自动提交表单。

标签: htmldjango

解决方案


在尝试了许多建议的解决方案后,我发现这个bakchod_launda提出的解决方案对我有用。

<body onload =  "if (location.search.length < 1){ document.getElementById('form').submit()}">

推荐阅读