[英]Remote validation with Parsley.js
我正在嘗試對(Django)表單中的電子郵件字段實施遠程驗證,但出現錯誤“ 無法讀取未定義的屬性'addAsyncValidator' ”。
模板(我使用的是Parsley的最后一個dist ,因此不需要remote.parsley.js )
<head>
<script src="{% static 'js/parsley.js' %}"></script>
</head>
<form id="user_form" method="post" action="/register/" enctype="multipart/form-data">
{% csrf_token %}
<input data-parsley-remote="/check_email/"
data-parsley-remote-message="The introduced email has already been registered!"
data-parsley-remote-options="{ 'type': 'POST' }"
data-parsley-remote-validator="emailAvailable"
data-parsley-remote-reverse="false"
data-parsley-required="true"
data-parsley-required-message="This field is required."
data-parsley-trigger="change"
data-parsley-type="email"
id="id_email"
name="email"
required="required"
type="email"
value="a@a.com"/>
{{ user_form.as_p }}
<input type="submit" class="btn btn-info submit" name="submit" value="Register" />
</form>
劇本
var csrftoken = $.cookie('csrftoken');
function csrfSafeMethod(method) {
// these HTTP methods do not require CSRF protection
return (/^(GET|HEAD|OPTIONS|TRACE)$/.test(method));
}
$.ajaxSetup({
beforeSend: function(xhr, settings) {
if (!csrfSafeMethod(settings.type) && !this.crossDomain) {
xhr.setRequestHeader("X-CSRFToken", csrftoken);
}
}
});
$(function() {
$("#user_form").parsley();
});
$('[name="email"]').Parsley.addAsyncValidator('emailAvailable', function (xhr) {
var emailExists = this.$element.val().startsWith(xhr.responseJSON.email + "@");
return !emailExists;
}, '/check_email/');
我想念什么?
Parsley
是一個全局變量。 您需要調用Parsley.addAsyncValidator(...)
來設置自定義函數來分析ajax調用的結果,而不是$somejQueryobject.Parsley.whatever
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.