2

ASP.NETRequiredFieldValidatorでは、クライアント側で無効にした場合でも、テキスト ボックス コントロールを検証します。を使用してこの動作を取り除きたかったのCustomValidatorです。検証関数では、テキスト ボックスが有効になっているかどうかを確認します。その場合は、バリデーターを有効に設定します。

function ValidateTextBox(sender, args) {

    var $textbox = $('#txtFoo')
    args.isValid = $textbox.prop('disabled') || $textbox.val();

}

これは、クライアント側で正常に機能します。問題は、JavaScript を使用してクライアント側のテキスト ボックスの状態を変更したことです。したがって、サーバーは変更された状態 (テキスト ボックス コントロールが無効になっていること) を認識しません。そのServerValidateため、カスタム バリデータのイベントが発生した場合 (呼び出しPage.Validateなどによって)、テキスト ボックスが無効になっているかどうかを確認できません。サーバーはこれを認識しないためEnabled、クライアント側で何をしても、プロパティは常に true に設定されます。
コントロールが無効になっているときにコントロールの検証を無効にしたり、サーバーにテキスト ボックスの状態を伝えたりするにはどうすればよいPostbackですか?

御時間ありがとうございます。

4

1 に答える 1

0
  1. 'disabled'テキストボックスを'ReadOnly'モードに設定しようとする代わりに。

  2. JavaScriptメソッドを使用してテキストボックスを無効にすることができEnableます(参照DisableRequiredFieldValidatorValidatorEnable

于 2012-08-13T11:19:26.507 に答える