2011-03-09 31 views
5

kullanarak form doğrulama Normal POST, GET yöntemleri söz konusu olduğunda, genellikle yolumu bilirim. Bununla birlikte, form doğrulamasını yapmak için koduma ajax-jQuery uygulamasının benim öğrenmem için büyük bir adım olduğunu kanıtlamasıdır.jQuery-Ajax

3 alana sahip bir formum var: e-posta, e-postayı ve şifreyi onaylayın.

Yeni bir kullanıcı kaydetmek için bu formu kullanıyorum.

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 kodu

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

ben teslim düğmesine basmadan önce, formu geçerli olup olmadığını kontrol etmek ve her türlü ilgili hata görüntülemek için, hoşuna gider ajax-jQuery yöntemlerini kullanarak iletilerini. Ancak, nasıl başlayacağımı/yapmam gerektiğini bilmiyorum. Sen http://github.com/alex/django-ajax-validation

içine bakmak isteyebilirsiniz

cevap

4

Ayrıca AJAX ile işleme hataları bakmak olabilecek bazı belgeler here ve here

+0

malzeme ilginç görünüyor Kontrol edeceğim –

0

yoktur. http://garmoncheg.blogspot.com/2013/11/ajax-form-in-django-with-jqueryform.html Görevinizin çalışması için jQuery form eklentisi ve kukla görünümler/URL'ler yapılandırması ile nasıl yapılacağına dair bir aksanı vardır. (En azından çok benzer bir tane)

+0

Yığın Taşımıma Hoş Geldiniz! Bu teorik olarak soruyu cevaplayabilirken [http://meta.stackexchange.com/q/8259] buradaki cevabın önemli kısımlarını içerecek ve referans için bağlantı sağlayacaktır. Ayrıca, [Topluluk dostu bir şekilde harici bir kaynağa nasıl bağlantı kurabilirim?] Bölümüne bakın (http://meta.stackexchange.com/q/94022/169503). –