Django“自动对焦”表单验证错误
Posted
技术标签:
【中文标题】Django“自动对焦”表单验证错误【英文标题】:Django "autofocus" on form validation error 【发布时间】:2016-12-17 12:22:01 【问题描述】:使用 Django 1.9 和 python 3.5,我想在我的模型表单中“设置焦点”在第一个验证失败的字段上。
这是如何实现的?
谢谢。
【问题讨论】:
【参考方案1】:我相信以下内容应该适合您。 (未经测试)
在表单的__init___
期间遍历字段。将autofocus
属性应用于遇到错误的第一个字段。
class MyForm(models.ModelForm):
def __init__(self, *args, **kwargs):
super(MyForm, self).__init__(*args, **kwargs)
for _, field in self.fields.iteritems():
if field in self.errors:
field.widget.attrs.update(
'autofocus': ''
)
break
【讨论】:
【参考方案2】:这个解决方案对我有用:
class YourForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
super(YourForm, self).__init__(*args, **kwargs)
#Focus on form field whenever error occurred
errorList=list(self.errors)
for item in errorList:
self.fields[item].widget.attrs.update('autofocus': '')
break
【讨论】:
以上是关于Django“自动对焦”表单验证错误的主要内容,如果未能解决你的问题,请参考以下文章