2

我正在为我的 web 应用程序使用 Twitter Bootstrap 中的“基本标签”

http://twitter.github.io/bootstrap/components.html#navs

单击其中一个选项卡时,我想使用 Flask 请求对象将参数发送到烧瓶。

<form action="{{ url_for('index') }}" method="post">
    <ul class="nav nav-tabs">
        <li class="active" input type="submit" name="test" value="0">
            <a href="#">A</a>
        </li>
        <li input type="submit" name="test" value="1"><a href="{{ url_for('index') }}">B</a></li>
        <li input type="submit" name="test" value="2"><a href="{{ url_for('index') }}">C</a></li>
    </ul>
</form>

此示例中有 3 个选项卡,当单击其中一个选项卡时,我将定义相应的“值”对象并通过请求对象传递。每个选项卡使用相同的 URL,因此需要通过请求对象传递差异。上面的代码片段没有通过请求对象发送任何内容,有人可以推荐一个修复方法。我使用“表单”对象是否正确?

谢谢!

4

1 回答 1

3

li元素没有属性input(或就此而言,typevalue)。你可能想要这样的东西:

<form action="{{ url_for('index') }}" method="post">
<ul class="nav nav-tabs">
    <li class="active">
        <button type="submit" name="test" value="0">A</button>
    </li>
    <li><button type="submit" name="test" value="1">B</button></li>
    <li><button type="submit" name="test" value="2">C</button></li>
</ul>
</form>

然后,您可以通过MultiDict访问POSTed 值:request.form

@app.route("/")
def index():
    print request.form.get("test", "None provided")
    return render_template("index.html")

请注意,旧 IE (<9) 对元素的处理存在错误。button

于 2013-04-17T01:41:07.453 回答