如何将attrs添加到表单上的许多字段?

时间:2011-07-24 18:38:04

标签: jquery django django-forms

我有一个非常大的ModelForm并希望实现Ketchup jquery validation。我必须在我想要验证的每个表单字段上添加data-validate=,并且至少可以说是费力的。 目前我有这样的事情:

class AuthorForm(forms.ModelForm):

    class Meta:
        model = Author
    def __init__(self, *args, **kwargs):
        super(AuthorForm, self).__init__(*args, **kwargs)
        self.fields['name'].widget.attrs['data-validate'] = 'validate(required)'
        self.fields['email'].widget.attrs['data-validate'] = 'validate(required, email)'
        self.fields['is_alive'].widget.attrs['data-validate'] = 'validate(minselect(1))'
        self.fields['telephone'].widget.attrs['class'] = 'telephone'
        self.fields['telephone'].widget.attrs['data-validate'] = 'validate(required)'

但是还有另外20个字段要去,我想知道是否有更简单的方法将这些属性添加到我想要验证的字段中。 (并非所有字段都必须经过验证,它们可以为空白)

1 个答案:

答案 0 :(得分:1)

我甚至不知道Ketchup是什么,我点击你的链接并找到一个关于如何在字段上没有属性的例子,也就是说,将它传递给ketchup()方法:

“在选项后面(在这里为空{}),我们传入一个对象。使用键来声明jQuery选择器,在哪些字段中处理值中的验证。声明这样的验证不需要验证( )指标。“

$('#fields-in-call').ketchup({}, {
  '.required'    : 'required',              //all fields in the form with the class 'required'
  '#fic-username': 'username, minlength(3)' //one field in the form with the id 'fic-username'
});

如果您正在寻找替代库,我会选择jQuery.validate