0

私はプラグインを持っています:

$.fn.formvalidator = function(method) {

私が呼ぶ:

$('form').formvalidator();

文字列の配列を受け取るメソッドがあります。

function execute(field, rules) {
    for(i=0; i<rules.length; i++) {
        window[rules[i]](field);
    }
}

rules:
array(
    'required',
    'email'
);

配列内の各文字列をフィールド パラメータを持つメソッドとして実行しようとしています。エラーが発生します:

Unhandled Error: 'window[rules[i]]' is not a function

私は周りを見回しましたが、私は関数宣言フォームバリデーターの中にいるので、ウィンドウを使用できないので試してみました:

$.fn.formvalidator[rules[i]](field);
fn.formvalidator[rules[i]](field);
formvalidator[rules[i]](field);

しかし、同じエラー。この文字列配列をメソッドとして実行する方法がわかりません。

更新: 明確化

$('form').formvalidator(); フォーム内のすべての入力を反復処理するプラグインを呼び出します。各入力要素には属性 data-fv="required|email|other|example" があり、これを取得します。

var attributes = $(this).data('fv');

これらの属性を取得したら、'|' で分割します。ルール配列に。各フィールド入力に対して、これらの文字列を呼び出したいと思います。

window[rules[i]](field); // if rules[0] = 'required' it calls the method below

function required(field) {
    ...
}

$('form').formvalidator(); 私が達成しようとしていることとは何の関係もありません。プラグインがどのようにアクティブ化されるかを示すために追加しただけです。

4

1 に答える 1