【发布时间】:2020-08-26 08:22:30
【问题描述】:
我正在使用烧瓶 jinja 和 wtforms 创建一个注册表单,但是在引发验证错误时我无法更新字段的占位符。
目前我的代码如下所示:
<div class="container">
{{ form.fieldA(placeholder="ph1") }}
{{ form.fieldB(placeholder="ph2") }}
{{ form.fieldC(placeholder="ph3") }}
</div>
{% for field, message in form.errors.items() %}
<style>
#{{ field }} {
box-shadow: inset 0 0 2px red, 0 0 4px red;
}
</style>
<script type="text/javascript">
let clean_message = "{{ message }}";
clean_message = clean_message.slice(6, -6);
document.getElementById("{{ field }}").placeholder = clean_message;
</script>
{% endfor %}
问题是只有第一个占位符被更改,以下占位符保持原来的占位符。 我对全栈开发很陌生,所以我不确定这是否是前端/后端 JS/Jinja 时间问题。
我还应该补充一点,在浏览器上脚本似乎被正确理解:clean_message 匹配该字段的错误消息。
【问题讨论】:
-
您是否在
let clean_message行中遇到关于clean_message已定义方式的 js 控制台错误? -
我怀疑这是由于这里提到的“重新声明”的东西:stackoverflow.com/questions/762011/…
-
我没有收到任何错误,但我得出了相同的结论。
标签: javascript html jinja2 wtforms