对jquery验证框架form validation的改进

本文介绍了一种解决IE6浏览器中表单验证提示被select标签遮挡的方法,通过增加fixIE6Select配置项并利用iframe实现修复。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

不错的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。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值