jQuery Validation Remote选项Flask

时间:2013-03-14 20:18:10

标签: jquery python jquery-validate flask

如果新用户的电子邮件地址已经存在,我正在尝试签入表单。

这是我的HTML:

$("#createform").validate({
            errorClass: "errormessage",
            validClass: "success",

        rules: {
            fname: {
                required: true,
                minlength: 2,
                string: true,
            },

            lname: {
                required: true,
                minlength: 2,
                string: true,
            },

            email: {
                required: true,
                email: true,
                remote: $.getJSON($SCRIPT_ROOT + "/_check_mail")
            },

            password: {
                required: true,
                minlength: 5,
            },

            confirmpassword: {
                equalTo: "#password"
            }
        }

这是我的Flask方法:

@app.route('/_check_mail')
def check_mail():
    mail = request.args.get('email')
    check = database.check_mail(mail)
    return check

其中database.check_mail(mail)检查电子邮件是否已存在于数据库中并返回True或False(以JSON格式)。

当我第一次加载页面并且客户端尝试访问烧瓶URL(/ _check_mail)时,它可以工作:

  • 请求网址:http://0.0.0.0:5000/_check_mail
  • 请求方法:获取状态
  • 代码:200 OK

但是当我输入电子邮件时,我会将此请求发送到获得404响应的服务器:

  • 请求网址:http://0.0.0.0:5000/[object%20Object]?email=arnoutaertgeerts%40gmail.com
  • 请求方法:GET
  • 状态代码:404 NOT FOUND

所以我认为发送电子邮件时出现问题?有什么想法吗?

1 个答案:

答案 0 :(得分:0)

问题解决了!我用它作为我的要求:

email: {
    required: true,
    email: true,
    remote: function( request, response ) {
        $.getJSON($SCRIPT_ROOT + "/_check_mail", {
        email: $('#email').val()
        }, response);
}

现在除了显示错误消息外,一切正常。当电子邮件已经存在时,我返回带有错误消息的字符串(如文档中所述),但消息不会显示。但是当我看到这些反应时,我明确地接受了它!