如何使用 javascript 更改 HTML 中的 Flask WTForm 字段值?

How to change Flask WTForm field value in HTML using javascript?

我有一个 HTML 形式的简单隐藏字段:

<input type="hidden" id="response" name="response">{{ form.response}}</div>

我想更改它的值,以便以后可以使用 flask 和 WTForms 使用它。

我试过这个:

function(token){
 document.getElementById('response').value = token
}

并且正在使用有效令牌调用该函数,但没有成功。

有什么建议吗?

表单的输入字段创建如下,其中可以使用标签或验证器等附加参数。

class ExampleForm(FlaskForm):
    response = HiddenField()
    submit = SubmitField()

请求服务器端的值需要以下代码。

@app.route('/', methods=['GET', 'POST'])
def index():
    form = ExampleForm(request.form)
    if form.validate_on_submit():
        print(form.response.data)
    return render_template('index.html', **locals())

如果您现在在模板中呈现,属性名称和 ID 将自动设置。该值对应于输入字段分配给的变量的标识符。要查询和设置值,您可以使用带有 name 属性的选择器或输入字段的 id。

<form method="post">
  {{ form.csrf_token }}
  {{ form.response }}
  {{ form.submit }}
</form>

<script type="text/javascript">
  (() => {
    
    const token = 'your token here';
    let responseField;
    
    // Selecting the input field based on the id attribute, 
    responseField = document.getElementById('response');
    responseField.value = token;

    // or select based on the name attribute.
    responseField = document.querySelector('input[name="response"]');
    responseField.value = token;

  })();
</script>