ASP.NETRequiredFieldValidator
では、クライアント側で無効にした場合でも、テキスト ボックス コントロールを検証します。を使用してこの動作を取り除きたかったのCustomValidator
です。検証関数では、テキスト ボックスが有効になっているかどうかを確認します。その場合は、バリデーターを有効に設定します。
function ValidateTextBox(sender, args) {
var $textbox = $('#txtFoo')
args.isValid = $textbox.prop('disabled') || $textbox.val();
}
これは、クライアント側で正常に機能します。問題は、JavaScript を使用してクライアント側のテキスト ボックスの状態を変更したことです。したがって、サーバーは変更された状態 (テキスト ボックス コントロールが無効になっていること) を認識しません。そのServerValidate
ため、カスタム バリデータのイベントが発生した場合 (呼び出しPage.Validate
などによって)、テキスト ボックスが無効になっているかどうかを確認できません。サーバーはこれを認識しないためEnabled
、クライアント側で何をしても、プロパティは常に true に設定されます。
コントロールが無効になっているときにコントロールの検証を無効にしたり、サーバーにテキスト ボックスの状態を伝えたりするにはどうすればよいPostback
ですか?
御時間ありがとうございます。