【发布时间】:2016-12-17 12:22:01
【问题描述】:
使用 Django 1.9 和 python 3.5,我想在我的模型表单中“设置焦点”在第一个验证失败的字段上。
这是如何实现的?
谢谢。
【问题讨论】:
标签: django django-models django-forms django-templates
使用 Django 1.9 和 python 3.5,我想在我的模型表单中“设置焦点”在第一个验证失败的字段上。
这是如何实现的?
谢谢。
【问题讨论】:
标签: django django-models django-forms django-templates
我相信以下内容应该适合您。 (未经测试)
在表单的__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
【讨论】:
这个解决方案对我有用:
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
【讨论】: