在 radio/checkbox 操作时自动提交表单(Python Flask)
Form autosubmit on radio/checkbox action (Python Flask)
我目前正在开发仪表板工具。在这里,我使用 Python 来遍历数据框,并根据数据创建过滤器。我有以下代码作为示例输出:
<form name="FormYear" method="post">
<div class="panel">
<div id="checkboxes">
<div class="filterdiv">
Forecast Year
<button class="filterButton clearfilter" type="submit" name="submit" value="clearFilterYear">
<i class="glyphicon glyphicon-remove"></i>
</button>
<button class="filterButton filter" type="submit" name="submit" value="filter">
<i class="glyphicon glyphicon-filter"></i>
</button>
</div>
<input value = "1" type="hidden" name="FormYear">
<input type="radio" name="Year" id="Year2016" value="2016" checked class="checkbox" >
<label class="checkboxLabel" for="Year2016">2016</label>
<input type="radio" name="Year" id="Year2017" value="2017" class="checkbox" >
<label class="checkboxLabel" for="Year2017">2017</label>
<input type="radio" name="Year" id="Year2018" value="2018" class="checkbox" >
<label class="checkboxLabel" for="Year2018">2018</label>
</div>
</div>
</form>
以上代码包含 2 个提交按钮(一个用于提交选择,一个用于清除所有选择)和 3 个单选按钮。为了设置单选按钮的样式,我使用了标签和 css。
仪表板将包含许多此类表单,我希望能够在用户选中复选框或单选按钮时提交表单。
基本上,每当用户更改过滤器时,我都需要让网站点击第二个按钮。
这可以做到吗?
您可以对您的 Flask 应用程序使用 Flask-Sijax, it helps you add Sijax 支持。 Sijax 是一个易于使用的 AJAX 库。
@flask_sijax.route(app, '/hello')
def hello():
def say_hi(obj_response):
obj_response.alert('Hi there!')
if g.sijax.is_sijax_request:
# Sijax request detected - let Sijax handle it
g.sijax.register_callback('say_hi', say_hi)
return g.sijax.process_request()
return _render_template('sijaxexample.html')
我目前正在开发仪表板工具。在这里,我使用 Python 来遍历数据框,并根据数据创建过滤器。我有以下代码作为示例输出:
<form name="FormYear" method="post">
<div class="panel">
<div id="checkboxes">
<div class="filterdiv">
Forecast Year
<button class="filterButton clearfilter" type="submit" name="submit" value="clearFilterYear">
<i class="glyphicon glyphicon-remove"></i>
</button>
<button class="filterButton filter" type="submit" name="submit" value="filter">
<i class="glyphicon glyphicon-filter"></i>
</button>
</div>
<input value = "1" type="hidden" name="FormYear">
<input type="radio" name="Year" id="Year2016" value="2016" checked class="checkbox" >
<label class="checkboxLabel" for="Year2016">2016</label>
<input type="radio" name="Year" id="Year2017" value="2017" class="checkbox" >
<label class="checkboxLabel" for="Year2017">2017</label>
<input type="radio" name="Year" id="Year2018" value="2018" class="checkbox" >
<label class="checkboxLabel" for="Year2018">2018</label>
</div>
</div>
</form>
以上代码包含 2 个提交按钮(一个用于提交选择,一个用于清除所有选择)和 3 个单选按钮。为了设置单选按钮的样式,我使用了标签和 css。
仪表板将包含许多此类表单,我希望能够在用户选中复选框或单选按钮时提交表单。
基本上,每当用户更改过滤器时,我都需要让网站点击第二个按钮。
这可以做到吗?
您可以对您的 Flask 应用程序使用 Flask-Sijax, it helps you add Sijax 支持。 Sijax 是一个易于使用的 AJAX 库。
@flask_sijax.route(app, '/hello')
def hello():
def say_hi(obj_response):
obj_response.alert('Hi there!')
if g.sijax.is_sijax_request:
# Sijax request detected - let Sijax handle it
g.sijax.register_callback('say_hi', say_hi)
return g.sijax.process_request()
return _render_template('sijaxexample.html')