jquery validate在ie8下的bug解决方法

 更新时间:2013年11月13日 16:04:20   作者:  
项目用到了jquery的表单校验插件validate,但在ie8下有bug,下面有个不错的解决方法,需要的朋友可以参考下
项目用到了jquery的表单校验插件validate,之前一直都只是做很简单的校验,没有做过稍微复杂的应用,近期项目对应用的要求提高了,一个页面中有两个提交按钮,然后表单校验是绑定在按钮的点击事件上的,如下。
 
然后很自然的就用到了插件的valid()函数:
 
这个确实能达到相要的效果,但是在ie8下竟然有问题,valid()方法始终返回false,而且所有的字段都会被当成必填字段校验,纠结了好久,因为jquery的插件代码都很复杂,所以刚开始看特别费劲,后来一步一步排查,找到问题了,问题出在attributeRules()函数上:
 
这个函数的作用是:当你把校验规则写在页面上而不是脚本里面时,同样可以应用校验框架。技术上是很合理的,对required的处理也是合理的,但是对于ie8来说,就有点问题了。ie8会执行以下分支:
 
所以,所有的字段都会被当成必填字段校验了。经过测试,最后又两种方法可以解决:

第一种是在rules()方法里面找到下面这段代码,注释掉对attributeRules()的调用,之所以可以这样做,是因为一般很少会把校验写到页面中去,当然这个肯定不是最佳解决方案,那就看看第二种。
 
第二种解决方法需要做两件事情:首先,需要对attributeRules()方法做一些修改,把getAttribute()方法换成attr()方法。注意getAttribute()是js方法,而attr()是jquery方法,它们的使用对象是不一样的,其实这样改完后,ie8下面的bug已经解决了,但是ie7下又出现了这种问题,所以你要用最新的jquery,我测试的时候用的是jquery1.10.2版本。
 
哦,对了,最后不要忘记阻止表单的默认事件。

相关文章

  • jQuery实现首页图片淡入淡出效果的方法

    jQuery实现首页图片淡入淡出效果的方法

    这篇文章主要介绍了jQuery实现首页图片淡入淡出效果的方法,实例分析了jQuery图片淡入淡出效果的相关使用技巧,需要的朋友可以参考下
    2015-06-06
  • jQuery v3.3.1的BUG以及解决办法(附解决方案)

    jQuery v3.3.1的BUG以及解决办法(附解决方案)

    这篇文章描述了我们 FineUIPro 产品 更新中遇到的一个问题,最终将问题定位到 jQuery.position() 函数,虽然jQuery的做法是依照HTML规范来的,但是 jQuery.offsetParent() 和 jQuery.position() 两个函数有冲突,并且会导致之前的jQuery插件出错,应该算是一个BUG吧
    2023-03-03
  • 利用div+jquery自定义滚动条样式的2种方法

    利用div+jquery自定义滚动条样式的2种方法

    可以设置左边菜单项div的overflow-x:auto;overlfow-y:auto;这样就会自动生成了滚动条,但是大家都知道自带的不好看。接下来就是重点了,如何修改滚动条的样式呢?感兴趣的朋友可以了解下本文
    2013-07-07
  • Jquery 绑定时间实现代码

    Jquery 绑定时间实现代码

    jquery 显示本地时间/ 带日期、星期/ UTC,需要的朋友可以参考下。
    2011-05-05
  • jquery分隔Url的param方法(推荐)

    jquery分隔Url的param方法(推荐)

    下面小编就为大家带来一篇jquery分隔Url的param方法(推荐)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-05-05
  • 单击和双击事件的冲突处理示例代码

    单击和双击事件的冲突处理示例代码

    这篇文章主要介绍了单击和双击事件的冲突处理方法,需要的朋友可以参考下
    2014-04-04
  • jquery DIV撑大让滚动条滚到最底部代码

    jquery DIV撑大让滚动条滚到最底部代码

    jquery DIV撑大怎么让滚动条滚到最底部,类似问题想必大家都有遇到过吧,下面与大家分享下具体的处理代码,感兴趣的朋友可以了解下哈
    2013-06-06
  • jquery实现的横向二级导航效果代码

    jquery实现的横向二级导航效果代码

    这篇文章主要介绍了jquery实现的横向二级导航效果代码,可实现鼠标滑过导航出现下拉菜单切换的效果,非常简洁自然,涉及jquery鼠标hover事件及页面元素样式的动态改变技巧,需要的朋友可以参考下
    2015-08-08
  • 20个非常棒的Jquery实用工具 国外文章

    20个非常棒的Jquery实用工具 国外文章

    网站设计者往往会设计一些小的工具类(widgets)或者一些可复用的程序,从而使页面更楚楚动人,更吸引浏览者驻足。这里收集了20个常用Jquery工具类,这些小的工具可以帮助网站设计人员和站长非常容易地创建漂亮的站点。
    2010-01-01
  • 浅析jQuery EasyUI中的tree使用指南

    浅析jQuery EasyUI中的tree使用指南

    这篇文章主要介绍了浅析jQuery EasyUI中的tree的用法,是根据个人对此的理解来实现的,需要的朋友可以参考下
    2014-12-12

最新评论