方法 1
Page_IsValid
ボタンの onClientClick イベント内でプロパティを false に設定してみてください。これにより、asp.netバリデーターに関する限り、ページが非検証状態になります。
基本的な例
function ButtonOnClickClient()
{
if ($('#hiddenFieldID').val() == 'someValue')
{
Page_IsValid = false;
}
}
正直なところ、Page_IsValid プロパティがリセットされないとは思えません。あなたは試す必要があるでしょう
方法 2
customvalidator クライアントの検証で非表示フィールドをチェックし、それに基づいて検証に合格または不合格にすることができます。ボタンの onclient クリック イベントはPage_ClientValidate()
、ページの検証を強制する関数を呼び出すことができます。これにより、正しい検証プロパティが設定されます。
基本例2
function CustomValidatorClientValidate(source, arguments)
{
if ($('#hiddenFieldID').val() == 'someValue'){
arguments.IsValid = true;
} else {
arguments.IsValid = false;
}
}
function ButtonOnClientClick()
{
Page_ClientValidate();
}
これは JQuery を使用します。その方法で例を書く方が簡単だからです。それを使用することは決して強制されません。また、asp.netバリデーターAPIが存在すると仮定しています。これらのコントロールを含めた場合はそうなるはずですが、関数名のチェックを追加することでいつでも引き締めることができます
また
おそらくあなたがなる検証グループを使用している場合、呼び出しは次のようになります
Page_ClientValidate(validationGroupName);
方法 3
あなたはそれについて試すことができますが、customvalidator の isvalid プロパティを設定してください。これにより、必要なバリデーターをより直接的に制御できるようになります。以下のリファレンスは言う
isvalid Boolean プロパティ。これは、現在有効かどうかを示す各クライアント バリデータのプロパティです。
最初の 2 つと似たようなことをしましたが、個人的には試していません。
一般に
使用している一般的な方法は、asp.net バリデーターが使用する JavaScript API を直接操作することです。とてもきれいではありませんが、必要なコントロールを得ることができます
参照
これにより、使用しようとしている JavaScript API への参照が提供されます。長い記事ですが、あなたが望むビットは約半分です
http://msdn.microsoft.com/en-us/library/Aa479045
幸運を
もっと
私は本当にこれを残す必要がありますが、あなたのコードはここで間違っています - それは OnClientClick です。
btnSend.OnClientClick = "someJavascriptFunction()";