IE8-10上的Jquery验证错误

时间:2013-11-21 13:57:02

标签: javascript jquery internet-explorer internet-explorer-8 jquery-validate

我的电子商务中有一个结帐页面,使用jquery验证,在firefox / chrome中它可以正常工作但在Internet Explorer 8到10中,我收到以下错误:

“object不支持此属性或方法jquery validate”

我已经尝试了旧版本和更新版本的validate和jquery,jquery 1.10,2.0,2.0,它确实适用于IE9和10,但我们需要支持IE8,而jquery 2.0x不再支持。是的,我正确地实例化了validate.js,但根本不起作用!

当我刷新页面时,它在本地工作,但是当我导航到链接时我收到错误,它完全是疯了!

这是我的代码:

<script src="http://192.168.0.24/client/public/template/site/default/javascript/jquery/jquery-1.7.1.min.js"></script>
<script src="https://www.moip.com.br/transparente/MoipWidget-v2.js"></script>
<script src="http://192.168.0.24/client/public/template/site/default/javascript/jquery/jquery-ui-1.10.3.custom.min.js"></script>
<script src="http://192.168.0.24/client/public/template/site/default/javascript/jquery/jquery.bgiframe-2.1.2.js"></script>
<script src="http://192.168.0.24/client/public/template/site/default/javascript/jquery/jquery.placeholder.js"></script>
<script src="http://192.168.0.24/client/public/template/site/default/javascript/jquery/jquery.swfobject.1-1-1.min.js"></script>
<script src="http://192.168.0.24/client/public/template/site/default/javascript/jquery/jquery.jqzoom-core.js"></script>
<script src="http://192.168.0.24/client/public/template/site/default/javascript/jquery/jquery.meio.mask.min.js"></script>
<script src="http://192.168.0.24/client/public/template/site/default/javascript/jquery/jquery.validate.1.8.1.min.js"></script>
<script src="http://192.168.0.24/client/public/template/site/default/javascript/jquery/jquery.validate.additional-methods.js"></script>
<script src="http://192.168.0.24/client/public/template/site/default/javascript/jquery/jcarousellite_1.0.1.min.js"></script>
<script src="http://192.168.0.24/client/public/template/site/default/javascript/jquery/jquery.cycle.all.js"></script>
<script src="http://192.168.0.24/client/public/template/site/default/javascript/jquery/jquery.easing.1.3.js"></script>
<script src="http://192.168.0.24/client/public/template/site/default/javascript/jquery/jquery.lazyload.min.js"></script>
<script src="http://192.168.0.24/client/public/template/site/default/javascript/jquery/jquery.popupWindow.js"></script>
<script src="http://192.168.0.24/client/public/template/site/default/javascript/jquery/jquery.colorbox.min.js"></script>
<script src="http://192.168.0.24/client/public/template/site/default/javascript/tools/tools.js"></script>

<script>
$(window).load(function(){
    $('#identificacao').validate({ // I receive the error in this line
        rules: {
            email:"required",
            senha:"required"
        },
        messages: {
            email:"Por favor, entre com seu e-mail.",
            senha:"Insira sua senha."
        }
    });

这是我的最后一次尝试,我尝试使用验证1.8的1.7版本(在另一个电子商务中工作),并且已经尝试了两者的最后版本,仍然得到错误,我不知道会发生什么,任何人都有相同的错误?

我正在使用这个验证插件: http://jqueryvalidation.org/

1 个答案:

答案 0 :(得分:1)

引用OP:

  

object doesn't support this property or method jquery validate

  

“当我刷新页面时,它在本地工作,但当我导航到链接时,我收到错误,它完全是疯了!”

是的,它是疯了......它是Internet Explorer,它无法与$(window).load()可靠地协同工作。您对刷新页面的描述是这个常见问题的症状。

请参阅:http://api.jquery.com/load-event/

  
      
  • 它不能始终如一地工作,也不能可靠地跨浏览器
  •   
  • 如果图像src设置为与之前相同的src,则无法在WebKit中正确触发
  •   
  • 它没有正确地冒泡DOM树
  •   
  • 可以停止为已存在于浏览器缓存中的图片触发
  •   

试试这个......

$(document).ready(function() {  // fires on DOM ready event

    $('#identificacao').validate({ 
        // your rules, options, etc.
    });

});

请参阅jQuery DOM ready event handler


如果由于某些其他原因仍然需要$(window).load()事件,将它放在DOM就绪处理程序中是完全可以接受的。

$(document).ready(function() { // <- fires when DOM is ready 

    $(window).load(function() { // <- supposed to fire when all assets have loaded
        ....
    });

});