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()

class 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 として返すことができます。この方法では、2 つの検証セットを維持する必要がなく、同じ結果が得られます。

[恥知らずなセルフプラグ] 私は、Django スニペットで使用できる jQuery を介して正確にそれを行ういくつかの基本フォーム クラスを作成しました。

于 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 に答える