1
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

このコードの問題が見つかりません。どんな助けでも大歓迎です

編集:

eg:scrollfor ループを使用してグローバル オプションを設定しようとしています。文字列には、これらのformRulesオプションがコンマで区切られ、formValues文字列内の対応する値が含まれます。

だから私はそれが次のようになることを期待しています$.validationEngine.defaults.scroll = true;

4

1 に答える 1

2

この行を変更

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

これに

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

rulesArray は $.validationEngine.defaults の子ではありません。rulesArray に格納されている値は次のとおりです。2 番目のコード ブロックの構文は、すべてを適切に参照しています。

これは、任意の種類の有効な計算(rulesArray[i] や "myStringPropertyName" など)を使用してオブジェクトのプロパティを取得する方法で、Bracket Notationと呼ばれます。その他のメソッドについては、 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Member_Operatorsを参照してください。

于 2013-09-10T12:58:14.740 に答える