Django形成缺少字段的

时间:2017-04-06 14:44:45

标签: javascript jquery django forms

我想在我的Django网站应用程序中实现一些JQuery元素,以使其具有动态性。

例如,用户填写表单并显示警告框取决于我的Django表单是否填写完整。

  • 如果Django表格填写完整,它会给出:"表格已经创建"

  • 如果没有正确填写Django表单,它会给出:"请查看表单"

我尝试了一些东西,我的html文件看起来像这样:

    <form class = "form" method='POST' action=''> {% csrf_token %}
        <br></br>
        {{ form.as_p}} <!-- Display child part formulary -->
        <br></br>

        <button onclick="myFunction()">Valider le formulaire</button>
    </form>

        {% if form.is_valid %}
        <script>
        function myFunction() {
            alert("Le formulaire a été créé");
        }
        </script>
        {% else %}
        <script>
        function myFunction() {
            alert("Le formulaire n'a pas été créé car champ(s) invalide(s)");
        }
        </script>
        {% endif %}

我的观点如下:

def BirthCertificate_Form_unique_number(request) :

    validity = []
    #User fill some fields
    query_social_number = request.GET.get('social_number')
    query_social_number_father = request.GET.get('social_number_father')
    query_social_number_mother = request.GET.get('social_number_mother')

    if request.method == 'POST':

        form = BirthCertificateForm2(request.POST or None)

        if form.is_valid() :   # Vérification sur la validité des données
            post = form.save()
            return HttpResponseRedirect(reverse('BC_treated2', kwargs={'id': post.id}))
     ...

如何在我的文件中编写此AlertBox?

谢谢!

PS:我对JQuery很新。我第一次使用它

编辑:

我试过这样的事情,但没有出现警报:

<form class = "form" method='POST' action=''> {% csrf_token %}
                <br></br>
                {{ form.as_p}} <!-- Display child part formulary -->
                <br></br>

                <button type="input">Valider</button>
            </form>


            <script type="text/javascript" >
                $(document).on('Valider', 'form.form', function(form) {
                var $form = $(form);
                $.ajax({
                    url:"/path_to_directory/BC_form2.html",
                    type: "POST",
                    success: function(form) {
                    alert("L'acte de naissance a été créé");
                    }
                });
                });
            </script>

1 个答案:

答案 0 :(得分:1)

您可以使用ajax提交数据以查看然后验证数据并返回响应的json。之后,您可以根据您的退货显示提醒。您可以根据需要使用$.ajax()$.get()$.post()和其他功能。只需确保您可以根据视图中的响应处理ajax中的数据。

<强>已更新

对于编辑案例,您必须了解有关jQuery的更多信息。而不是

$(document).on('Valider', 'form.form', function(form)

你应该

$(document).on('event', 'selector', function(form)

对于event是一种输入或您想要处理的事情,例如当您想要处理点击时,您使用click或更改内容您可以使用change

对于selector,你可以从你的html元素获得某种id,class或其他类型。因此,在您的情况下,如果您想使用click事件,代码就像

$(document).on('click', '.btn-validate', function(e){
    var form = $(".form").serialize();
    $.ajax({
        url: "url_on_your_view and already registered in you url.py",
        type: "POST",
        success:function(response){
            alert("L'acte de naissance a été créé");
        }
    });
}

对于您的按钮,您必须更新到

<button type="input" class="btn-validate">Valider</button>