2011-03-09 119 views
5

当谈到正常的POST,GET方法时,我通常会知道我的方式。使用jQuery-Ajax进行表单验证

但是,在我的代码中实现ajax-jQuery以进行表单验证对我来说是一个巨大的进步。

我有一个表格有3个字段: 电子邮件,确认电子邮件和密码。

我正在使用此表单来注册新用户。

form.py

class UserField(forms.EmailField): 
    def clean(self, value): 
     super(UserField, self).clean(value) 
     try: 
      User.objects.get(username=value) 
      raise forms.ValidationError("email already taken.") 
     except User.DoesNotExist: 
      return value 

class RegistrationForm(forms.Form): 

    email = UserField(max_length=30, required = True) 
    conf_email = UserField(label="Confirm Email", max_length=30, required = True) 
    password = forms.CharField(label="Enter New Password", widget=forms.PasswordInput(), required=True) 

    def clean(self): 
     if 'email' in self.cleaned_data and 'conf_email' in self.cleaned_data: 
      if self.cleaned_data['email'] != self.cleaned_data['conf_email']: 
       self._errors['email'] = [u''] 
       self._errors['conf_email'] = [u'Email must match.'] 
     return self.cleaned_data 

HTML代码

<form method="post"> 
    {{ register_form.as_p() }} 
    <input name = "Register" type="submit" value="Register" /> 
</form> 

我想,在此之前我按下提交按钮,以检查形式有效并显示任何相关错误消息,通过使用ajax-jQuery方法。但是,我不知道如何开始/做这个。

回答

0

你也可以看看错误的AJAX处理。 http://garmoncheg.blogspot.com/2013/11/ajax-form-in-django-with-jqueryform.html 它的重点在于如何使用jQuery表单插件和虚拟views/url配置来完成任务。 (至少非常相似)

+0

欢迎来到Stack Overflow!虽然这可能在理论上回答这个问题,[这将是更可取的](http://meta.stackexchange.com/q/8259)在这里包括答案的重要部分,并提供供参考的链接。另外,请看[如何以社区友好的方式链接到外部资源?](http://meta.stackexchange.com/q/94022/169503)。 – 2013-11-29 09:59:50