首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用Parsley.js进行远程验证

用Parsley.js进行远程验证
EN

Stack Overflow用户
提问于 2016-03-03 14:40:13
回答 1查看 1K关注 0票数 1

我试图在我的(Django)表单中实现电子邮件字段的远程验证,但我得到的错误是“无法读取未定义的属性'addAsyncValidator‘”。

模板(我使用的是remote.parsley.js,所以不需要最后一片欧芹 )

代码语言:javascript
复制
<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>

脚本

代码语言:javascript
复制
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/');

我遗漏了什么?

EN

回答 1

Stack Overflow用户

发布于 2016-03-04 00:59:53

Parsley是一个全局变量。您需要调用Parsley.addAsyncValidator(...)来设置您的自定义函数来分析ajax调用的结果,而不是$somejQueryobject.Parsley.whatever

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35775158

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档