添加规则JQuery验证在IE中不起作用

添加规则JQuery验证在IE中不起作用,jquery,internet-explorer,validation,Jquery,Internet Explorer,Validation,我使用下面的函数以友好方式添加JQuery验证规则: function addRules(rulesObj) { for (item in rulesObj) { $('#' + item).rules('add', rulesObj[item]); } } 我使用的是jQueryVersion1.7.2和jQueryValidate1.9,它在IE7和IE8中不起作用。在铬和FF中工作良好。我遗漏了什么吗? 错误:对象不支持此操作。 规则如下所示: var c

我使用下面的函数以友好方式添加JQuery验证规则:

function addRules(rulesObj) {
    for (item in rulesObj) {
        $('#' + item).rules('add', rulesObj[item]);
    }
}
我使用的是jQueryVersion1.7.2和jQueryValidate1.9,它在IE7和IE8中不起作用。在铬和FF中工作良好。我遗漏了什么吗? 错误:
对象不支持此操作。

规则如下所示:

var ctrxRules = {
        L4 : {
            required : true
             }
};

如果规则为空,则有效。

我无法解释原因,但解决方案很简单,请在项目之前添加一个
var

function addRules(rulesObj) {
    for (var item in rulesObj) {
        $('#' + item).rules('add', rulesObj[item]);
    }
}

我试图复制这个,但没有成功。你介意提供一个例子来说明这一点吗?下面的答案解决了这个问题。我理解,但我很好奇它是如何解决这个问题的。您能否通过提供错误代码的示例,以便我们更好地记录问题?正如@Ryley所说,他无法解释代码工作的原因。好吧,一切都在我的电脑上工作。我没有在IE上使用任何脚本调试器,但当我对addRules函数或页面加载的主体进行注释时。我能说的不多了,我已经说明了JQuery、jQueryValidate和IEI的版本,我将不胜感激。这都是进一步研究和使StackOverflow成为一个更有用的地方的一部分。非常感谢。这可能是因为声明不带关键字“var”的变量会污染带有“item”的全局范围