HTML 基于 python 变量的单选按钮输入类型的默认值
HTML default value fo radio button input type based on python variable
所以我正在制作一个 Flask 应用程序,用户可以在其中上传电子表格,然后可以在 html 页面上使用该电子表格的参数。一个参数是一个只能为 1、2 或 3 的值。用户可以通过选择具有这些选项的单选按钮来更改此值。
一切正常,但我希望单选按钮的默认值是用户上传的初始电子表格中的值。
我的想法是做这样的事情:
main.py
@app.route('/', methods=['GET','POST'])
def params_form():
value = 2
value_dict = {'1': 1==value, '2': 2==value, '3': 3==value}
return render_template('home/sheet.html', value_dict)
sheet.html
<div>
<input type="radio" id="n1" name="nyears" value=1 checked={{value_dict["1"]}}>
<label for="n1"> 1 </label>
<input type="radio" id="n2" name="nyears" value=2 checked={{value_dict["2"]}}>
<label for="n2"> 2 </label>
<input type="radio" id="n3" name="nyears" value=3 checked={{value_dict["3"]}}>
<label for="n3"> 3 </label>
</div>
但不幸的是,任何使用 'checked' 属性都会选中该框(在本例中为编号 3,因为它是最后一个使用选中属性的框)。似乎拥有默认检查值的唯一方法是仅在一个输入行上使用检查属性。
任何帮助让它工作的人都将不胜感激
提前致谢!
您需要通过将其作为关键字传递来设置 render_template
中的变量名称:
@app.route('/', methods=['GET','POST'])
def params_form():
value = 2
value_dict = {'1': 1==value, '2': 2==value, '3': 3==value}
return render_template('home/sheet.html', value_dict=value_dict)
<div>
<input type="radio" id="n1" name="nyears" value=1 {{ 'checked' if value_dict["1"] else '' }} >
<label for="n1"> 1 </label>
<input type="radio" id="n2" name="nyears" value=2 {{ 'checked' if value_dict["2"] else '' }} >
<label for="n2"> 2 </label>
<input type="radio" id="n3" name="nyears" value=3 {{ 'checked' if value_dict["3"] else '' }} >
<label for="n3"> 3 </label>
</div>
所以我正在制作一个 Flask 应用程序,用户可以在其中上传电子表格,然后可以在 html 页面上使用该电子表格的参数。一个参数是一个只能为 1、2 或 3 的值。用户可以通过选择具有这些选项的单选按钮来更改此值。
一切正常,但我希望单选按钮的默认值是用户上传的初始电子表格中的值。
我的想法是做这样的事情:
main.py
@app.route('/', methods=['GET','POST'])
def params_form():
value = 2
value_dict = {'1': 1==value, '2': 2==value, '3': 3==value}
return render_template('home/sheet.html', value_dict)
sheet.html
<div>
<input type="radio" id="n1" name="nyears" value=1 checked={{value_dict["1"]}}>
<label for="n1"> 1 </label>
<input type="radio" id="n2" name="nyears" value=2 checked={{value_dict["2"]}}>
<label for="n2"> 2 </label>
<input type="radio" id="n3" name="nyears" value=3 checked={{value_dict["3"]}}>
<label for="n3"> 3 </label>
</div>
但不幸的是,任何使用 'checked' 属性都会选中该框(在本例中为编号 3,因为它是最后一个使用选中属性的框)。似乎拥有默认检查值的唯一方法是仅在一个输入行上使用检查属性。
任何帮助让它工作的人都将不胜感激 提前致谢!
您需要通过将其作为关键字传递来设置 render_template
中的变量名称:
@app.route('/', methods=['GET','POST'])
def params_form():
value = 2
value_dict = {'1': 1==value, '2': 2==value, '3': 3==value}
return render_template('home/sheet.html', value_dict=value_dict)
<div>
<input type="radio" id="n1" name="nyears" value=1 {{ 'checked' if value_dict["1"] else '' }} >
<label for="n1"> 1 </label>
<input type="radio" id="n2" name="nyears" value=2 {{ 'checked' if value_dict["2"] else '' }} >
<label for="n2"> 2 </label>
<input type="radio" id="n3" name="nyears" value=3 {{ 'checked' if value_dict["3"] else '' }} >
<label for="n3"> 3 </label>
</div>