【发布时间】:2013-04-04 20:09:59
【问题描述】:
我正在构建一个基于 Web 的仪表板,我想使用来自 Twitter Bootstrap 的单选按钮来帮助创建查询,然后针对 MongoDB(通过 Flask)运行,然后刷新 具有新填充数据的相同页面。我是构建基于 Web 的仪表板的新手,如果有更好的方法,请告诉我。
{% extends "base.html" %}
{% block content %}
<div class="row">
<div class="span4 offset4">
<div class="well">
<legend>Click me!</legend>
<form method="POST" action="" accept-charset="UTF-8">
{% if error %}
<div class="alert alert-error">
<a class="close" data-dismiss="alert" href="#">x</a>{{ error }}
</div>
{% endif %}
<div id="radios1" class="btn-group view-opt-btn-group" data-toggle="buttons-radio">
<button type="button" class="btn active" name="choice1" value="A">A</button>
<button type="button" class="btn" name="choice1" value="B">B</button>
<button type="button" class="btn" name="choice1" value="C">C</button>
<button type="button" class="btn" name="choice1" value="D">D</button>
<button type="button" class="btn" name="choice1" value="E">E</button>
<input type="hidden" name="choice1" value={{request.form['choice1']}} />
</div>
<script type="text/jscript">
$("body").find("#radios1").children().each(function () {
$(this).bind('click', function () {
$("input[name=choice1]").val(this.value);
});
});
</script>
<button class="btn-info btn" input type="submit">Submit</button>
</form>
</div>
</div>
</div>
{% endblock %}
这会生成单选按钮并使用 JavaScript 代码检测单击了哪个按钮,然后通过 request.Form 对象将该数据发送回以进行处理。
如何在屏幕更新后在每个按钮栏上设置活动框?我是否必须编写某种{{if request.option1 == ?}} 块来为每个按钮定义class="btn active",还是有更聪明(或更明显)的方法来做到这一点?另外,如何设置默认值/初始化条件?我应该在请求对象中预填充相应的字段吗?
另外,是否可以在不使用上面的 JavaScript 代码的情况下将选定的框传递给 Flask?
【问题讨论】:
标签: python twitter-bootstrap flask jinja2