javascript - 使用 Parsley.js 进行远程验证

标签 javascript forms validation parsley.js

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

模板(我使用 last dist of Parsley ,因此不需要 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 .

关于javascript - 使用 Parsley.js 进行远程验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35775158/

相关文章:

javascript - 表单计算字段不在报告页面 jquery 和 asp 上发布

validation - 寻找 GWT 验证示例...你在哪里?

javascript - 如何包含 jquery.validate.js 文件(在本地目录中)并在表单验证中使用它?

zend-framework - 如何在 Zend_Form::isValid() 方法中获取表单元素值?

javascript - 是否可以通过编程方式更改 js 中条件语句的逻辑运算符?

javascript - 在 ReactJS 中调用渲染内部的操作 - 无法在调度中间调度

javascript - 如何在 JS 和 HTML 中停止表单自动重置?

javascript - 自动生成网站图表

javascript - 如何在polymer3的模板中嵌入html代码(如unsafeHTML)

php - 如何构建干 Twig 形式?