ぷろぐらまさんの忘れないようにメモ書き

2011-01-20

OnClientClickとValidatorの関係

実行ボタンのOnClientClickプロパティに"return Confirm('実行しますか?')"を設定。

テキストボックスAに、RequiredFieldValidator(必須バリデーター)を設定。
このバリデーターのEnableClientScriptプロパティをtrueにする。



この状態だと、実行ボタンを押したとき、テキストボックスAが空白でも、
return Confirm('実行しますか?')が実行され、
「はい」と押した後に、サーバー側で検証が行われる。
つまり、クライアントでの検証が行われない。


それを回避するために、
ASP.NET Ajax Control Toolkitの「ConfirmButtonExtender」があるんだけど、
参考:[ASP.NET AJAX]ConfirmButtonコントロールでボタン・クリック時に確認ダイアログを表示するには?[2.0のみ、C#、VB] − @IT
上の記事によると、このExtenderなら、ConfirmOnFormSubmitプロパティをtrueにすることで、検証OK後にOnClientClickが実行されると書かれてある。


なんだけど・・・・なぜか、この通りにならず・・・
必ずOnClientClickの後にサーバーでの検証チェックになってしまう。。。

いろいろ試してみたけど、よく原因がわからないので、
結局OnClientClickに自作クライアント関数をセットして
バリデーターがNGならfalse、OKなら「Confirm('実行しますか?')」することにした。


クライアントでValidatorを実行する方法
ASP.NETのValidatorをjavascriptから呼び出す - ぷろぐらまさんの忘れないようにメモ書き

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/manymanytips/20110120/1295505521