0

嗨,我有一个模型表单,它是根据找到的文档完成的: https ://docs.djangoproject.com/en/dev/topics/forms/modelforms/

我的反馈表的一些属性:

模型.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=['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 检查键入的电子邮件是否有效。

我在这里找到了类似于我需要的东西,但它是用于表单的。我已经尝试过了,但它不适用于我的 ModelForm。

4

2 回答 2

0

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

[无耻的自我插入] 我写了一些基本的表单类,它们通过 jQuery 完成,你可以在 Django Snippets 上使用它们。

于 2013-03-14T02:55:30.807 回答
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);
}
于 2013-03-14T03:01:41.470 回答