2009-08-08 10 views
0

私はWebForm_doPostBack()を呼び出すべきかどうかを決めるために、いくつかのonclick()、特にチェックボックスを使っていくつかのスクリプトを実行する必要があります。WebForm_doPostBack()を条件付きで停止する方法?

フォームをmyScript()で直接送信すると、別のasp.netバリデータの検証が行われないため、ネイティブWebForm_doPostBack()呼び出しが本当に必要です。

送信フォームイベントを処理する必要がありますか、それを行うには "asp.net"の方法はありますか?

CustomValidatorsはチェックボックスでは機能しません:)。

+0

私が正しく理解していれば、フォームの残りの部分でチェックボックスを有効にしたいが、あなたはそれをseperatly onclickで検証したいのですか? - PortageMonkey 0秒前 – PortageMonkey

答えて

0

あなたは、単にそのようにボタンを提出する時に独自の検証を入れないでください:

btnSubmit.Attributes["onclick"] += "return myValidation();"; 

<script> 
    function myValidation() 
    { 
     // if you do not want to postback just return false... 
     return true; 
    } 
</script> 

EDIT:あなたがプログラムで、あなたのページのクライアント側の検証を無効/有効にするためにPage_ValidationActiveを使用することができます。

Page_ValidationActiveブール 検証が行われるべきかどうかを示す値 。 変数をfalseに設定して、クライアント側の検証 をプログラムで無効にします。ただ、カスタムバリデータは、チェックボックスでは動作しないことが、あなたの前提を確保するため

+0

は、WebForm_doPostBack()を一切持たない場合、他のバリデータの検証は行いません。 もしそうなら、私はそれをどのように止めるのでしょうか? – rudnev

+0

私はあなたを正しく理解していれば、フォームの残りの部分でsubmit時にチェックボックスを検証したくないのですが、それをseperatly onclickで検証したいと思いますか? – PortageMonkey

+0

私は自分の妥当性検査をしたいと思って、それからasp.netにそれをさせてもらいたいですか? – rudnev

0

が別々のチェックボックスをクリックを処理したいのための唯一の理由ではないが、ここではASP.NETのカスタムバリデータを使用してチェックボックスを検証するいくつかのコードです。

カスタムバリデータには、__doPostbackが呼び出されるか、フォームが送信されるときに自動的に呼び出されるClientValidationFunctionプロパティがあります。

//The Script 
function validateCheckBox(source, arguments) 
{ 
    if(!source.checked) arguments.IsValid = false;//set IsValid property to false 

} 

//The Validator 
<asp:CustomValidator ID="validateCheckbox" runat="server" ControlToValidate="CheckBox1" ErrorMessage="You REALLY need to check this!" Display="Static" ClientValidationFunction="validateCheckBox"/> 
+0

チェックボックスにControltoValidateプロパティを割り当てることはできません。 http://msdn.microsoft.com/en-us/library/9eee01cx%28VS.71%29.aspx – rudnev

関連する問題