You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flask获取表单单选框值时仅返回字符串首段的问题求助

单选框提交后仅获取"from"前缀的问题排查与解决

嘿,我来帮你搞定这个问题!你遇到的情况是前端能正常显示所有以"from"开头的单选选项,但后端不管选哪个都只拿到"from",这其实是HTML属性渲染的小坑导致的。

先回顾下你的代码:

你使用的Jinja2模板代码

{% for item in l %} 
<div> 
  <input type="radio" name="value" value={{item}} style="color: white;" /> 
  <label style="color: white;">{{item}}</label> 
</div> 
{% endfor %}

后端Python代码

val = request.form.get('value')
note = request.form.get('Note')
print(val)

问题根源

问题出在value={{item}}这里!因为你的选项都包含空格(比如from xxx),而你没有给value的属性值加引号。浏览器解析HTML时,会把空格当成属性的分隔符——也就是说,渲染后的HTML会变成这样:

<input type="radio" name="value" value=from xxx style="color: white;" />

这里浏览器会把from识别为value的完整值,后面的xxx被当成了一个无效的独立属性,所以后端只能拿到"from"。

解决方法

只需要给value的属性值加上双引号,把整个item内容包裹起来就行,修改后的模板代码如下:

{% for item in l %} 
<div> 
  <input type="radio" name="value" value="{{item}}" style="color: white;" /> 
  <label style="color: white;">{{item}}</label> 
</div> 
{% endfor %}

这样渲染后的每个单选框value都会完整保留选项内容,比如:

<input type="radio" name="value" value="from abc" style="color: white;" />

之后后端用request.form.get('value')就能正确获取到你选中的完整选项值啦!

内容的提问来源于stack exchange,提问作者Maheedhar A

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.28 15:32:37