【发布时间】:2020-06-01 23:58:07
【问题描述】:
如何使用从flask - render_template 预填充的 HTML <select> 下拉列表。
这是从 flask-jinja2 预填充的 <select> 下拉列表。
<div>
<select class="test-default" id="testTime">
{% for option in options %}
<option value={{ option }}>{{ option }}</option>
{% endfor %}
</select>
</div>
test.html 中的脚本,
function fetch_test_data(){
let test = $("#testTime").val();
axios({
method:"get",
url:"/test",
params: {
test
}
}).then(function (response) {
$(document.body).html(response.data)
});
}
还有test.py 文件 - 带有应用程序路由和options 用于下拉菜单。
@app.route('/test', methods=["GET"])
@login_required
def transactions_view():
options = ["0","7","14","30"]
return render_template("test.html", options=options)
在上述情况下如何使用selected属性来显示选中的值。
当一个值被选中时, 正确的值返回到烧瓶并渲染回来。但是下拉可视化/列表显示第一个值而不是选定值?
我尝试过的:
我可以获得dropdown select 用于定义的下拉菜单。
defined-dropdown - 供参考
<div>
<select class="test-default" id="testTime">
<option value=0>today</option>
<option value=7>week</option>
<option value=14>fortnight</option>
<option value=30>month</option>
</select>
</div>
{{ time }}
我可以使用上面的下拉菜单:
<div>
<select class="test-default" id="testTime">
<option value=0 {% if time == 0 %} selected="selected" {% endif %}>today</option>
<option value=7 {% if time == 7 %} selected="selected" {% endif %}>week</option>
<option value=14 {% if time == 14 %} selected="selected" {% endif %}>fortnight</option>
<option value=30 {% if time == 30 %} selected="selected" {% endif %}>month</option>
</select>
</div>
{{ time }} 从 test.py 返回的地方
@app.route('/test', methods=["GET"])
@login_required
def transactions_view():
time = (request.args.get("test"))
return render_template("test.html", time=time)
【问题讨论】:
-
将变量值解析为int,例如:
int(time) -
@Zanthoxylum-piperitum 为什么要给一个你事后放弃的问题加赏金?
标签: javascript python html flask jinja2