我需要验证来自数据库的用户名和电子邮件,为此我需要发送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
},
答案 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库源,自己添加功能并将请求拉到主存储库。