在WTForms的StringField对象中添加ID字段

时间:2018-12-22 14:09:01

标签: javascript python flask flask-wtforms wtforms

我正在使用Flask和WTForms在Python中创建表单,并使用HTML在前端显示表单。

我想添加验证,也要使用JavaScript在客户端进行网络调用,问题是我无法在客户端本身的特定字段中获得值,因为没有提供给String字段的ID。

我们该怎么做?如果那不可能的话,替代方法是什么

class Add_user_form(Form):
    name = StringField('Name',[validators.Length(min = 1, max=50)])
    email_address = StringField('Email Address',[validators.Length(min = 1, max=50)])
    user_password = PasswordField('Password',    [validators.DataRequired(),validators.EqualTo('confirm', message='Passwords must match')])
    confirm = PasswordField('Confirm Password')

HTML代码是

{% block body %}
    <h1>Registration</h1>
    {% from "includes/formhelpers.html" import render_field %}
    <form  method = 'POST'>
        <div class="form-group">
        {{render_field(form.name,class_= 'form-control')}}
        </div>
        <div class="form-group">
        {{render_field(form.email_address,class_= 'form-control')}}
        </div>
        <div class="form-group">
        {{render_field(form.user_password,class_ = 'form-control')}}
        </div>
        <div class="form-group">
        {{render_field(form.confirm,class_ = 'form-control')}}
        </div>
        <p><input type ="submit" class = "btn-primary" value="Submit" onclick="myfunction()"></p>
    </form>
{% endblock %}

1 个答案:

答案 0 :(得分:0)

如果您打开 html 页面并检查元素,您将看到已经为与 StringField 中的变量名称相同的元素定义了名称和 id。

这意味着您可以像这样从输入字段中找到文本:

var name = document.getElementById('name').value