不错的jquery验证框架-form validation使用总结 一帖中作者对英文原版 进行改进和汉化,但无论是原版和这个“汉化版”在ie6下验证提示都会被select标签遮挡,这本是ie6的bug,参照bgiframe插件 的代码,我进行了一些修改。
settings = jQuery.extend({
allrules:allRules,
validationEventTriggers:"blur",
inlineValidation: true,
returnIsValid:false,
animateSubmit:true,
unbindEngine:true,
ajaxSubmit: false,
promptPosition: "topRight", // OPENNING BOX POSITION, IMPLEMENTED: topLeft, topRight, bottomLeft, centerRight, bottomRight
success : false,
failure : function() {},
fixIE6Select: "auto" //auto,fix,unfix
}, settings);
配置上增加了fixIE6Select参数,默认为"auto"即自动判断页面中有没有select标签,有则启用。
if($.browser.msie && /6.0/.test(navigator.userAgent)){
var selectNum=$('select').length;
var IE6html='<iframe frameborder="0" tabindex="-1" src="javascript:false;" ';
IE6html+='style="display:block;position:absolute;z-index:-1;';
IE6html+='top:expression(((parseInt(this.parentNode.currentStyle.borderTopWidth)||0)*-1)+\'px\');';
IE6html+='left:expression(((parseInt(this.parentNode.currentStyle.borderLeftWidth)||0)*-1)+\'px\');';
IE6html+='width:expression(this.parentNode.offsetWidth+\'px\');';
IE6html+='height:expression($(this).parent().find(\'.formErrorContent\').outerHeight()+\'px\');" />';
switch($.validationEngine.settings.fixIE6Select){
case "unfix":
break;
case "fix":
$(divFormError).append(IE6html);
break;
default: //auto
if(selectNum>0){
$(divFormError).append(IE6html);
}
}
}
在验证提示文本内容下添加一层iframe。
修复IE6下表单验证遮挡问题
本文介绍了一种解决IE6浏览器中表单验证提示被select标签遮挡的方法,通过增加fixIE6Select配置项并利用iframe实现修复。
344

被折叠的 条评论
为什么被折叠?



