0

それぞれの中にいくつかのテキストボックスがあるいくつかのパネルを持つasp.net Webフォームがあります。現在、DropDownList のどの項目が選択されているかに基づいて、jQuery を使用してパネルを非表示または表示しています。

親パネルにdisplay: none.

RequiredFieldValidator が添付されている要素が CSS のために表示されていない場合、それを無効にする方法はありますか?

サーバー側で Visible=false を設定すると、要素がまったくレンダリングされないことはわかっていますが、ユーザー エクスペリエンス上の理由から、表示/非表示のロジックをクライアント側に保持することをお勧めします。

4

2 に答える 2

2

カスタムバリデーターが最適であることに同意しますが、クライアント側でそれを行う必要がある場合は、ValidatorEnable 関数を使用できます。

ValidatorEnable(document.getElementById("<%= RequiredFieldValidator.ClientID %>"), false);

(私は実際にこれを自分で試したことはありませんが、クライアント側でバリデーターを無効にするために使用されていると聞いたことがあります。)

于 2013-03-06T17:48:29.373 に答える
1

このスレッドが言うように、その機能を使用できます。したがって、以下のようにメソッドを変更します

    function cbSearchOption_SelectedIndexChanged(sender, args) {
    var x = document.getElementById('cbSearchOption').value
    if (x == 'Date')
    {
        ValidatorEnable($get(‘&lt;%=DateValidator1.ClientID %>’), true);
        document.getElementById('test').style.visibility = 'visible';
    }
    else
    {
        ValidatorEnable($get(‘&lt;%=DateValidator1.ClientID %>’), false);
        document.getElementById('test').style.visibility = 'hidden';
    }
}
于 2013-03-06T17:49:28.933 に答える