jQuery验证 - 使用AJAX调用验证电子邮件

时间:2014-04-26 01:46:50

标签: javascript jquery-validate

我有一张邀请表,只接受GMail处理的电子邮件。我正在尝试插入异步验证,但不确定应该从服务器返回什么以及要使用哪些Javascript处理程序。

  1. 如果有人输入Yahoo电子邮件,我想在电子邮件输入字段旁边显示“不是GMail地址”
  2. 我想从后端收到“Not a GMail address”消息。
  3. 我的尝试(不太好):

    $('#invite').validate({
        submitHandler: function(form, e) {
            $.ajax({
                type: 'POST',
                url: $(form).attr('action'),
                data: {
                    email: $(form).find('#email').val()
                },
                success: function() {debugger;},
                error: function() {alert('failed');}
            });
    
            return false;
        },
        invalidHandler: function(event, validator) {
            debugger;
        },
        rules: {
            email: {
              required: true,
              email: true,
              remote: {
                url: "/invite.php",
                type: "post",
                async: true,
                data: submittedEmail
            }
          }
        }
    });
    

    谢谢!

1 个答案:

答案 0 :(得分:1)

问题解决了。

Javascript代码:

$('#invite').validate({
    rules: {
        email: {
            required: true,
            email: true,
            remote: {
                url: '/admin/isgmail/',
                type: 'POST',
                dataType: 'json',
                data: {
                    email: function() {
                        return $('#email').val();
                    }
                }
            }
        }
    },
    messages: {
        email: "GMail email is required."
    },
    onkeyup: false
});
如果验证成功,

invite.php应返回字符串“true”,字符串“false”如果有错误或JSON编码的字符串描述错误:echo json_encode('This is not a Google account');