您好我有一个基于找到的文档完成的模型表单: https://docs.djangoproject.com/en/dev/topics/forms/modelforms/
我的反馈表的一些属性:
Models.py
class Feedback(models.Model):
name = models.CharField(max_length=200)
email = models.EmailField()
title = models.CharField(max_length=200)
feedback = models.TextField()
class FeedbackForms(ModelForm): 类Meta: model =反馈
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=['smth@example.com'])
email.send()
return render_to_response("success.html")
else:
form = FeedbackForms()
return render_to_response("form.html", {'form': form}, context_instance=RequestContext(request))
但是,现在我想在执行POST之前使用jQuery检查键入的电子邮件是否有效。
我找到了类似于我需要的东西here,但是它适用于表格。我试过了,但它对我的ModelForm没有用。
答案 0 :(得分:0)
有jQuery的客户端表单验证插件可以肯定,但你真的不需要使用它。您可以通过Ajax执行所有验证服务器端,并在尝试保留任何数据之前将表单错误作为JSON返回。这样您就不必维护两组验证,并获得相同的结果。
[无耻的自我插件]我写了一些base form classes,通过jQuery可以在Django Snippets上使用它。
答案 1 :(得分:0)
if(isEmail(email)) {
//Do something
}
function isEmail(emailaddress) {
var re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[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);
}