Django HTML表单回显context异常:带空格字符串仅显示前半部分
问题原因
你遇到的回显内容截断问题,是因为HTML input标签的value属性没有用引号包裹变量。当传入的值包含空格时,浏览器会把空格后的内容识别为独立的HTML属性,仅把空格前的内容作为value的取值,就会出现你描述的截断现象。
比如你传入John Smith时,模板渲染后的代码是<input ... value=John Smith>,浏览器会判定value的值为John,剩下的Smith被当成无效属性忽略。
修复方法
修改index.html中所有input标签的value属性,用双引号包裹模板变量即可:
- 姓名输入框修改为:
<input type="text" class="form-control" name="name" id="name" placeholder="Name" required value="{{ name|default:"" }}">
- 位置输入框修改为:
<input class="form-control" name="location" id="location" type="text" placeholder="Enter your current location" autocomplete="on" runat="server" required value="{{ location|default:"" }}">
- 隐藏的城市输入框修改为:
<input type="text" class="form-control" name="city" id="city" placeholder="city" required value="{{ city|default:"" }}">
修改后模板渲染时会把完整字符串包裹在引号内,浏览器就能正确识别完整的value值,不会出现空格截断的问题。
内容的提问来源于stack exchange,提问作者isash
相关产品推荐
相关产品推荐

