2013-03-14 50 views
0

您好我有这是基于发现的文件上做了模型的形式: https://docs.djangoproject.com/en/dev/topics/forms/modelforms/使用jQuery检查,如果电子邮件是有效形式的ModelForm

我的反馈表的一些属性:

Models.py

class Feedback(models.Model): 
    name = models.CharField(max_length=200) 
    email = models.EmailField() 
    title = models.CharField(max_length=200) 
    feedback = models.TextField() 

类FeedbackForms(的ModelForm): 类元: 模型=反馈

forms_details.py

def save_form(request): 
    if request.method == 'POST': 
     form = FeedbackForms(request.POST) 
     if form.is_valid(): 
      form.save() 
      name = form.cleaned_data['name'] 
      email = form.cleaned_data['email'] 
      title = form.cleaned_data['title'] 
      feedback = form.cleaned_data['feedback'] 

      email = EmailMessage("%s" % title, "%s <%s> said: %s" % (name, email,feedback), 
           to=['[email protected]']) 
      email.send() 
      return render_to_response("success.html") 
    else: 
     form = FeedbackForms() 
    return render_to_response("form.html", {'form': form}, context_instance=RequestContext(request)) 

不过,现在我想用jQuery来检查,如果键入的电子邮件是有效的我做的POST之前。

我发现了类似于我需要的东西here但它是用于表单的。我试过了,但它对我的ModelForm不起作用。

回答

0

有jQuery客户端表单验证插件可以肯定,但你真的不需要使用一个。在尝试保留任何数据之前,您可以通过Ajax完成所有验证服务器端并将表单错误返回为JSON。这样你就不必维护两组验证,并且你可以得到相同的结果。

[无耻自我插入]我写了一些base form classes,通过jQuery,你可以在Django片段使用。

0
if(isEmail(email)) { 
//Do something 
} 

function isEmail(emailaddress) { 
    var re = /^(([^<>()[\]\\.,;:\[email protected]\"]+(\.[^<>()[\]\\.,;:\[email protected]\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; 
    return re.test(emailaddress); 
}