如何在类函数中发送ajax请求

时间:2016-05-01 02:10:16

标签: javascript jquery ajax

我需要验证来自数据库的用户名和电子邮件,为此我需要发送ajax请求。 到目前为止,为了验证,我已经完成了这个

var handleRegister= function() {
$('.register-form').validate({
            errorElement: 'span', //default input error message container
            errorClass: 'help-block', // default input error message class
            focusInvalid: false, // do not focus the last invalid input
            ignore: "",
            rules: {

                fullname: {
                    required: true
                },
                email: {
                    required: true,
                    email: true
                },
                confirm_email:{
                    required: true,
                    equalTo: "#email",
                },
                address: {
                    required: true
                },
                city: {
                    required: true
                },
                country: {
                    required: true
                },

                username: {
                    required: true,

                },
                password: {
                    required: true
                },
                rpassword: {
                    equalTo: "#register_password"
                },

                tnc: {
                    required: true
                },
                day: {
                    required: true
                },
                year: {
                    required: true
                }
            },

            messages: { // custom messages for radio buttons and checkboxes
                tnc: {
                    required: "Please accept TNC first."
                }
            },

            invalidHandler: function(event, validator) { //display error alert on form submit   

            },

            highlight: function(element) { // hightlight error inputs
                $(element)
                    .closest('.form-group').addClass('has-error'); // set error class to the control group
            },

            success: function(label) {
                label.closest('.form-group').removeClass('has-error');
                label.remove();
            },

            errorPlacement: function(error, element) {
                if (element.attr("name") == "tnc") { // insert checkbox errors after the container                  
                    error.insertAfter($('#register_tnc_error'));
                } else if (element.closest('.input-icon').size() === 1) {
                    error.insertAfter(element.closest('.input-icon'));
                } else {
                    error.insertAfter(element);
                }
            },

            submitHandler: function(form) {
                form.submit();
            }
        });
}

我知道如何使用ajax发送Jquery请求,我的问题是我如何发送请求并为上述功能中的这两个字段设置验证

username: {
                    required: true,

                },
email: {
                    required: true,
                    email: true
                },

1 个答案:

答案 0 :(得分:1)

看起来Validate library API并不支持您需要的功能。

我能想到的唯一方法就是手动完成,比如

$('.email-field').on('blur', function(e) {
   var valueToValidate = e.target.value;
   $.get('/validate/email', {value: valueToValidate},function(data){
       if(data.result === false){
          $('.invalid-email').show();
       } else {
          $('.invalid-email').hide();
       }
   });
})

更长的方法(如果你仍然需要这个功能)是fork库源,自己添加功能并将请求拉到主存储库。