【发布时间】:2013-04-22 09:56:23
【问题描述】:
我在网络应用上有一组 Twitter Bootstrap 按钮,我需要将选择传递给 Flask,我不想使用提交按钮。
<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>
</div>
Twitter 引导程序会根据点击自动更新 class="btn active" 设置。但是如何将选定的按钮传递给 Flask?我希望单击按钮以调用烧瓶应用程序中的函数(python 函数)并更新特定设置,但我不想在每次单击时重新加载整个网页。
我见过一些具有隐藏按钮的解决方案,带有更新隐藏按钮值的 jquery 函数,但是该选择如何传递给烧瓶:
<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>
谢谢!
【问题讨论】:
-
你知道什么是 AJAX 吗?
-
没错,但是有没有一个通过 Flask 处理选定按钮的好例子?
-
当按钮状态发生变化时,只需从 Javascript 发出 HTTP 请求(如果您使用 Javascript 框架,这将非常容易)。然后在您的烧瓶应用程序中为该请求编写一个处理程序并执行您想要执行的处理。
-
当您使用 JQuery 时,请查看
get或post函数示例。 -
Twitter Bootstrap 没有直接传递按钮点击的能力似乎很奇怪。为什么我必须使用隐藏按钮和 jquery,这似乎是一个 hack 解决方案。
标签: python twitter-bootstrap flask