2009-04-21 17 views
10

チェックアウトプロセスで旧式のASP.NET検証(ugh)を使用しています。私はチェックボックスを持っています - "私はクレジットカードの詳細と一緒に電話します" - 。これをチェックすると、クライアントとポストバックの両方でクレジットカード番号に必要なフィールドバリデーターとccバリデーターを無効にする必要があります。チェックボックスがオンになっている場合、一部のASP.Net検証コントロールを無効にする

どうすればよいですか?あなたはサーバー側バリデータを無効にすることができ

答えて

11

あなたは(ジャバスクリプト中)バリクライアント側を無効にすることができます

validatorIdはのクライアントIDである
function disable(validatorId) 
{ 
    var validator = document.getElementById(validatorId); 
    ValidatorEnable(validator, false); 
} 

無効にするバリデータ。完全な例については、this pageを参照してください。

+0

それをチェックし、それに応じて行動します - ありがとうございます。 –

+1

既存のバリデータメッセージを隠すために、ValidatorEnable()の後に以下を追加する必要がありました。 validator.isvalid = true; ValidatorUpdateDisplay(バリデータ); –

+0

これらのバリデータのjQueryセレクタを使用する方がよいでしょう。例えば、hiddenなどの一般的なCSSの状態を持つ可能性があります。 – Jaider

3

MyFieldValidator.Enabled = MyCheckBox.Checked 

Page.Validate() 
If Page.IsValid Then 
    'stuff 
end if 
2

あなたは、サーバー側を無効にしているなら、あなたはあなたがバリデータの多くを持っており、それらすべてを無効にする必要がある場合、これはより有用であるあなたのCheckChangedEventに

button1.CausesValidation = False 

を行うことができます。

+0

プロテクトvoid NoValidation_CheckedChanged(オブジェクト送信者、EventArgs e) { SubmitButton.CausesValidation =!NoValidation.Checked; } –

関連する問題