Sal*_*n54 5 python wtforms flask-wtforms
我对 WTForms、Flask-WTF 比较陌生。我无法弄清楚如何从表单定义中简单地将 HTML5 属性“自动聚焦”添加到表单字段之一。我想在 Python 代码中这样做,而不是在 Jinja 模板中。这是我所拥有的:
class NameForm(Form):
name1 = StringField("Nom d'utilisateur :",
validators=[Required(), Length(1, 16)])
pwd1 = PasswordField("Mot de passe :",
validators=[Required(), Length(1, 16)])
mail1 = StringField("Compte GMail du calendrier :",
validators=[Required(), Email()])
submit = SubmitField('Envoyer')
Run Code Online (Sandbox Code Playgroud)
我只想将“autofocus”属性添加到“name1”字段中。
我在路线中试过这个:
@app.route('/', methods=['GET', 'POST'])
def form():
name1 = None
pwd1 = None
mail1 = None
msg = None
# Tests
Name_Form_kwargs = {"name1": "" ,"autofocus" :"true"}
Name_Form = NameForm(**Name_Form_kwargs)
print Name_Form.name1
#
form = NameForm()
.....
Run Code Online (Sandbox Code Playgroud)
但这只会更改字段值,不会添加任何属性:
<input id="name1" name="name1" type="text" value="">
Run Code Online (Sandbox Code Playgroud)
我从 SO 中阅读了很多答案并尝试了各种解决方案,但我被卡住了。谢谢你的帮助。
小智 8
我发现,您可以将参数 render_kw 添加到表单类中的字段中,您可以在其中添加所有用于渲染的关键字,包括自动对焦。
所以我现在在我的表单类中是:
class CheckForm(FlaskForm):
"""
Check-in or check-out users.
"""
checkmode = RadioField('checkmode', validators=[DataRequired()], choices=[('in', 'Check-In'), ('out', 'Check-Out')])
datainput = StringField('Name', validators=[DataRequired()], render_kw={'autofocus': True})
submit = SubmitField('Submit')
Run Code Online (Sandbox Code Playgroud)
这与 wtf.quick_form() 的预期一样呈现,并将光标放置在 StringField 中,使用 wtforms 2.1 版和 flask-wtf 0.14.2 版加载。
| 归档时间: |
|
| 查看次数: |
3209 次 |
| 最近记录: |