输入值属性未在搜索栏上显示全文

Input value attribute not showing full text on search bar

我的代码是一个使用 Flask (python) 框架的 Web 应用程序,我在 HTML5 上实现了这个搜索栏,我希望输入的搜索文本显示在搜索栏之后页面加载;像这样(其中 {{query}} 是 Jinja2 传递的变量):

    <form class="search-bar search_header" method="GET" action="/">
    <input class="search_input" name="q" tabindex="1" type="text" value={{query}}>
    <button class="search_button" tabindex="2" type="submit">
        <i class="icon-search"></i>
    </button>
</form>

问题是只显示第一个白色 space 之前的文本,其余部分被截断,因此 "This is an example" 将在搜索栏中显示 "This"。如果我传递一个常规字符串而不是变量,那么它就可以正常工作。

{{query}} 是 unicode 类型,如果这很重要,我已经尝试用多种方式对其进行格式化都无济于事,有什么解决方法吗?

我也考虑过将着陆页搜索栏 html 中的变量保存为 Javascript,但我是 Javascript 的新手,如有任何建议,我们将不胜感激!

我希望你必须将占位符用双引号引起来:

<input class="search_input" name="q" tabindex="1" type="text" value="{{query}}">

否则替换的 html 代码将是

<input class="search_input" name="q" tabindex="1" type="text" value=text with whitespace>

普通的 html 渲染器会将其解析为具有属性 valuewithwhitespace 的输入元素,后两者没有值,而 value 的值为 text。请注意,大多数 html 渲染器可以容忍未定义的属性,并且标准涵盖了无值属性(因为它省略了双引号)。