我想在我的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>
答案 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>