首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在文本输入中使用field.label作为默认值

如何在文本输入中使用field.label作为默认值
EN

Stack Overflow用户
提问于 2022-04-11 22:10:46
回答 1查看 310关注 0票数 1

我正在使用python、烧瓶、jinja来创建一个表单,我正在迭代一个字段列表来呈现输入,一切都很好。

我试图在输入框中使用field.label属性作为默认值,这样我就不需要它们旁边的标签,而是不需要实际的标签(对于输入中有label =search_term的字段) <label for=,而在输入旁边的Search Term"> .

如果我将{{field.label}}放置在其他任何地方,它就会正确地显示字段标签,如果我使用field.name作为值,它就能正常工作--为什么它只在{{ field (class="col-6 text-center", value=field.label)}}的上下文中起着奇怪的作用?

谢谢!

代码语言:javascript
复制
JINJA2
        {% for field in form if not field.name =="csrf_token" %}
        <tr>
          {% if field.type == "SubmitField" %}
          <td class="col-6 pr-3"> </td>
          <td class="col-6 text-left pl-3">{{form.submit(class="w-50 btn btn-outline-info") }} </td>

          {% elif field.type == "BooleanField"%}
          <td class="col-6 text-right pr-3">{{ field.label}}</td>
            <td class="col-4 text-left">{{ field (class="col-6 text-center")}}</td>

          {% elif field.type == "SelectMultipleField" %}
          <td class="col-6 text-right pr-3">What are you searching for? <br /><span class="small"> ctrl-click for multiple </span></td>
          <td class="text-left pl-3">{{ field(class="col-6 text-center") }}</td>

          {% else %}
          <td class="col-6 text-right pr-3">{{ field.label }}</td>
          <td class="col-6 text-left">{{ field (class="col-6 text-center", value=field.label)}}</td>
          {% endif %}
        </tr>
        {% endfor %}

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-04-12 01:24:27

代码语言:javascript
复制
{{ field (class="col-6 text-center", value=field.label)}}

上面的代码导致结果中断的原因是,field.label本身将与HTML紧密相连,而不仅仅是文本。您正在尝试包含HTML (包括引号),因为生成的HTML中的值将被破坏,如下所示:

代码语言:javascript
复制
<input value="<label for="search">"> <!-- Invalid HTML! -->

WTForm文献中我们可以看到,label具有text属性,这将为您提供标签的纯文本。

像这样的东西会给你想要的结果:

代码语言:javascript
复制
{{ field (class="col-6 text-center", value=field.label.text)}}

另外,您是否正在寻找placeholder属性而不是value

代码语言:javascript
复制
<h2>Using 'value'</h2>

<input type=text value="Search Term"> Note that you have to delete the text first...

<h3>vs</h3 <br>

<h2>Using 'placeholder'</h2>

<input type=text placeholder="Search Term">

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71834859

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档