Flask表单输入框仅显示书籍标题首词问题求助
问题排查:Input字段仅显示标题第一个单词的原因及解决办法
问题出在你的HTML代码里,和Flask无关。
原因分析
HTML中,属性值如果不使用引号包裹,当值包含空格时,浏览器会将第一个空格后的内容识别为新的HTML属性。比如你写:
<input type="text" value=Python Flask 入门>
浏览器会解析成value="Python",后面的Flask和入门会被当作无意义的属性,所以input只显示第一个单词。
而直接用{{book.Titel}}输出是作为文本节点存在,textarea的内容是写在标签闭合内部,这两种情况都不受HTML属性解析规则的限制,所以能正常显示完整标题。
解决办法
给所有input的value属性值加上双引号:
<div class="col-7"> <h2>Suchergebnisse</h2> {% if books %} <input type="text" id="test0" value="{{books[0].Titel}}"> {{books[0].Titel}} {% endif %} {% for book in books %} <input type="text" id="test2" value="{{books[0].Titel}}"> {{books[0].Titel}} <input type="text" id="test2" value="{{book.Titel}}"> {{book.Titel}} <form action="" method="POST"> <input type="text" id="test3" value="{{book.Titel}}"> <textarea class="form-control" id="test4" readonly>{{book.Titel}}</textarea>
另外注意你的代码里有重复的id="test2",这不符合HTML规范,同一个页面里id应该唯一,建议修改避免后续出现其他问题。
内容的提问来源于stack exchange,提问作者Georg Aubele
相关产品推荐
相关产品推荐

