在IE 8中使用Jquery.Validate插件获取错误

时间:2009-11-08 03:29:21

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

我不知道会发生什么,但是我的jquery validate plugin(1.5.5)无效,我不确定自从我在firefox上进行大部分测试后多久。

问题是我去了我的一个表单,jquery验证它并点击我的“创建”按钮,我的验证应该按照它应该启动并在包括IE8在内的所有浏览器中正确执行。现在它不起作用的是我这样做的时候。

我选择第一个下拉列表并选择一些内容。然后点击“创建”,现在所有验证错误都应显示在第一个下拉框中。

除了在IE 8中,它在所有浏览器中都会这样做。我得到了这个

  

网页错误详情

     

用户代理:Mozilla / 4.0(兼容;   MSIE 8.0; Windows NT 6.1; Win64平台; 64;   三叉戟/ 4.0; .NET CLR 2.0.50727;   SLCC2; .NET CLR 3.5.30729; .NET CLR   3.0.30729; Media Center PC 6.0;平板电脑2.0)时间戳:太阳,2009年11月8日   03:26:08 UTC

     

消息:需要对象行:890   字符:5代码:0 URI:   http://localhost:3668/Scripts/Plugins-Development/jquery.validate.js

这就是第890行

return options.length > 0 && ( element.type == "select-multiple" || ($.browser.msie && !(options[0].attributes['value'].specified) ? options[0].text : options[0].value).length > 0);

这就像整个方法块一样。

methods: {

    // http://docs.jquery.com/Plugins/Validation/Methods/required
    required: function(value, element, param) {
        // check if dependency is met
        if ( !this.depend(param, element) )
            return "dependency-mismatch";
        switch( element.nodeName.toLowerCase() ) {
        case 'select':
            var options = $("option:selected", element);
            return options.length > 0 && ( element.type == "select-multiple" || ($.browser.msie && !(options[0].attributes['value'].specified) ? options[0].text : options[0].value).length > 0);
        case 'input':
            if ( this.checkable(element) )
                return this.getLength(value, element) > 0;
        default:
            return $.trim(value).length > 0;
        }
    },

不确定发生了什么。

2 个答案:

答案 0 :(得分:4)

验证插件中存在错误。进行此处描述的更改: http://osdir.com/ml/jQuery/2009-08/msg00151.html

答案 1 :(得分:1)

这似乎是验证插件和修复程序的已知问题。 ValidationPlugin Issue page