【问题标题】:Django "autofocus" on form validation errorDjango“自动对焦”表单验证错误
【发布时间】:2016-12-17 12:22:01
【问题描述】:

使用 Django 1.9 和 python 3.5,我想在我的模型表单中“设置焦点”在第一个验证失败的字段上。

这是如何实现的?

谢谢。

【问题讨论】:

    标签: django django-models django-forms django-templates


    【解决方案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
      

      【讨论】:

        猜你喜欢
        • 2013-04-01
        • 2016-03-20
        • 2011-02-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-01-03
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多