在jquery validate中遇到了这组代码

时间:2013-09-10 12:39:33

标签: javascript jquery jquery-plugins

var formRules  = $(this).data('rules');
var formValues = $(this).data('values');

    if(formRules || formValues){
        var rulesArray = formRules.split(',');
        var valuesArray = formValues.split(',');
        for(var i=0; i < rulesArray.length; i++){
            //alert(rulesArray[i]);
            $.validationEngine.defaults.rulesArray[i] = valuesArray[i];
        }
    }
    else{
        return false;
    }

这会引发如下错误

Error: TypeError: $.validationEngine.defaults.rulesArray is undefined
Source File: http://localhost:8380/javascript/jquery.validationEngine.js
Line: 2092

我找不到此代码的问题。欢迎任何帮助

编辑:

我正在尝试使用for循环设置全局选项eg:scrollformRules字符串将以逗号分隔这些选项,并在formValues字符串中包含相应的值。

所以我希望它像$.validationEngine.defaults.scroll = true;

一样

1 个答案:

答案 0 :(得分:2)

更改此行

 $.validationEngine.defaults.rulesArray[i] = valuesArray[i];

到这个

 $.validationEngine.defaults[rulesArray[i]] = valuesArray[i];

rulesArray不是$ .validationEngine.defaults的子节点。存储在rulesArray中的值是。我的第二个代码块中的语法正确引用了所有内容。

这称为 Bracket Notation ,一种使用任何有效计算(如rulesArray [i]或“myStringPropertyName”)获取对象属性的方法。有关其他方法,请参阅https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Member_Operators