我想在我的 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}))
...
我如何在我的文件中编写此警报框?
谢谢!
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>
您可以使用 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,类或其他类型。因此,在您的情况下,如果您想使用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>