在Django中通过下拉菜单选项传递URL参数是否可行?
这种实现方式完全可行
这种用<select>下拉菜单替代文本输入框,通过GET表单传递参数的方式是完全没问题的,和你之前用文本输入框的逻辑本质一致——表单提交时,所有带name属性的表单控件的value值都会被拼接成URL查询参数,发送到action指定的地址。
补充说明:
- 只要后端代码能正确解析
units和language这两个查询参数,就能正常获取用户选择的值 - 你提供的示例代码里有个小bug:
<select name="language">里多了一个多余的</option>标签,得删掉,不然可能导致页面渲染出问题
修正后的完整示例代码:
<form action="" method="GET"> <div class="units-div"> <label for="units">Units:</label> <select name="units" id="units-selection"> <option value="metric">Metric</option> <option value="imperial">Imperial</option> </select> </div> <div class="language-div"> <label for="language">Language:</label> <select name="language" id="language-selection"> <option value="english">English</option> <option value="italian">Italian</option> </select> </div> <!-- 建议加个提交按钮,方便用户触发提交 --> <button type="submit">提交</button> </form>
如果想让用户选择选项后自动提交表单,不用点按钮,可以加一段简单的JS:
// 获取所有下拉菜单 const selects = document.querySelectorAll('select'); selects.forEach(select => { select.addEventListener('change', function() { // 提交当前表单 this.form.submit(); }); });
内容的提问来源于stack exchange,提问作者user19840758
相关产品推荐
相关产品推荐

