Django-ajax-validation:使用ajax单击指定按钮验证表单字段

时间:2013-10-11 18:45:27

标签: jquery ajax django

我设法让Django-ajax-validation(版本1.3)在我的项目中工作,方法是使用我的表单在模板的脚本中设置focusout事件,如下所示:

$('#ajax_validated_form').validate('{% url contact_form_validate %}', {type: 'ul', event: 'focusout'});

每当我从表单的任何输入字段中聚焦时,都会通过ajax验证表单的每个字段(点击输入后点击其他内容)。

但是,我只想在点击<button id="ajax_submit">Ajax submit</button>元素时进行验证。

所以我尝试了以下内容:

$('#ajax_validated_form').validate('{% url validate_entity %}', {type: 'ul', event: $("#ajax_submit").on("click")});

但这不起作用。我该怎么做?

1 个答案:

答案 0 :(得分:2)

我必须通过作为第二个参数传递给validate方法的对象中的dom键(dom: $("#ajax_submit"))的值来指定我想要将事件耦合到的元素。

所以我需要的是以下内容:

$('#ajax_validated_form').validate('{% url validate_entity %}', {type: 'ul', dom: $("#ajax_submit"), event: "click"});

编辑:

还要知道#ajax_validated_form不一定要引用form元素来让验证工作,如果表单输入{{1}中包含的内容,它也可以正常工作}!

E.g:

div

一样有效
<div id="ajax_validated_form">
    {{ ajax_val_form }}
</div>

编辑2:

不要忘记在页面脚本中加入以下内容(来自django docs):

<form id="ajax_validated_form" action="" method="post">
    {{ ajax_val_form }}
</form>