我正在使用 jquery validate v1.7 和 jQuery v1.4.2,我必须在 blur 和 onkeyup 事件上使用 .live。这些事件似乎不适用于这些版本。任何关于如何处理带有这些约束的 onkeyup 和 blur 事件的解决方案都会有所帮助。
注意:我将无法将这些版本更新到可用的最新版本,因为多个团队正在使用这些文件的旧版本并且他们不想升级到最新版本。
Jquery 验证调用:
onkeyup: function(element){
C.options.throwMessages(element);
},
throwMessages: function(el){
if($(el).attr('name') === "email"){ //Validating email field
var selectedField = $(el);
var emailValid = C.options.simple_validate_email(selectedField);
if (C.options.pageName === 'login' || C.options.pageName === 'register'){
$(C.options.currentPage).find(':submit').click(function(){
var selectedField = $(C.options.currentPage).find('input.email');
if(!selectedField.val().length){
selectedField.removeClass('errorIndicator');
}
});
}
if(C.options.pageName === "register"){
selectedField.live('blur', function(){
if($(this).val().length === 0){
$(this).parent().parent().removeClass('aimValid');
}
});
selectedField.live('keydown focusout', function(event) {
if(event.type == 'keydown'){
if(!C.options.simple_validate_email($(this))){
$(this).parent().parent().removeClass('aimValid');
$(C.options.currentPage).find('.emailTip').show().html('Please enter a valid email address.');
}else{
$(this).removeClass('errorIndicator');
$(C.options.currentPage).find('.emailTip').hide().html('');
}
}else if(event.type == 'focusout'){
if(!C.options.simple_validate_email($(this))){
}else{
$(this).removeClass('errorIndicator');
$(C.options.currentPage).find('.emailTip').hide().html('');
}
}
});
}
}else if($(el).attr('name') === "password"){//Validating password field
var selectedPasswordField = $(el);
if(C.options.pageName === "register"){
//password field
selectedPasswordField.live('keydown', function(){
if($(this).val().length === 0){
$(this).parent().parent().removeClass('aimValid');
$(this).removeClass('aimError');
}
});
}
}else if($(el).attr('name') === "username2"){//Validating email field on ForgotPassword screen
var selectedField = $(el);
if (C.options.pageName === 'forgotPassword') {
var isFormValid = false;
$(C.options.currentPage).find(':submit').click(function(){
if((selectedField.val().length === 0) || !selectedField.parent().parent().find('div.aimError').length){
isFormValid = true;
}
selectedField.live('keydown focusout', function(event){
if(event.type === 'keydown'){
$(C.options.currentPage).find('.emailTip').hide().html('');
}else{
$(C.options.currentPage).find('.emailTip').hide().html('');
}
});
if (isFormValid) {
$(C.options.currentPage).find('.emailTip').show().html('Please enter a valid email address.');
}else{
$(C.options.currentPage).find('.emailTip').hide().html('');
}
});
}
}
},