2

JavaScriptでコントロールが有効かどうか知りたいのですが。コントロールが有効かどうかを教えてくれるAsp.Netで利用可能な直接クライアント側APIはありますか?

例えば。テキストボックスに2つのバリデーターをアタッチしている場合、テキストボックスが有効かどうかを通知する関数が必要です。1つのバリデーターでも無効な場合は、falseを返す必要があります。

これを実現できる関数が見つからないようです。これが私が書いた小さなヘルパーで、仕事はしますが非効率的です:

function isControlValid(control) {
    for (i = 0; i < Page_Validators.length; i++) {
        var validator = Page_Validators[i];
        var controlId = validator.controltovalidate;
        if ($(control).attr('id') == controlId && validator.isvalid == false) {
            return false;
        }
    }
    return true;
}

誰かもっと良い選択肢がありますか?

4

1 に答える 1

1

以下のコードが機能するはずです。

function isControlValid(control) {
    var validators = $(control).Validators;
    var isValid = true;
    Array.forEach(validtors, function(item) {
        isValid = isValid && (item.isvalid === true);
    });
    return isValid;
}

アップデート

ページバリデーター全体が繰り返されないため、これは提案したものよりも優れています。コントロールに関連付けられているものだけが反復に使用されます。$(control).Validatorsコントロールに関連付けられたバリデーターを取得するために使用されます。

于 2012-04-13T05:32:20.030 に答える