html - 如何使用 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 传递的预选选项自动提交表单。
解决方案
在尝试了许多建议的解决方案后,我发现这个由bakchod_launda提出的解决方案对我有用。
<body onload = "if (location.search.length < 1){ document.getElementById('form').submit()}">
推荐阅读
- reactjs - react js中getDerivedStateFromProps中的多个道具验证
- c# - Form window not opening when I run the program because of a line in c#
- azure-web-app-service - 使用 javascript 在 html Web 应用程序中的 Azure 时间序列见解可视化
- opencart - opencart display_errors on, error_reporting = E_ALL
- c# - 在c#中如何在没有完整路径的下拉列表中获取文件名
- java - 在多线程执行期间使用 TestNG 生成 Cucumber ExtentReport
- microcontroller - 在 BASCOM 上创建开关信号灯
- python-3.x - 寻找用于图形可视化的 Python 模块
- python - Django:如何在不使用表单的情况下将数据从 csv 导入数据库?
- r - 如何使用 R 访问隐藏的系统文件?