- PR -

検証コントロール(ASP.NET)のクライアントスクリプトをsubmit時のみに

1
投稿者投稿内容
Sampo
会議室デビュー日: 2008/07/03
投稿数: 18
投稿日時: 2008-08-07 09:37
VS2008 / ASP.NET 3.5 /C#
一般的な入力フォームを作っています。
RequiredFieldVaidatorやRegularExpressionValidatorを使って入力項目をチェックしているのですが、クライアントスクリプトの発動条件がどうも思うようにならず困っています。
どのような動作をすることに困っているかというと…

●テキストボックスの内容が変更され、フォーカスが他へ移ると検証が起こる(ValidationGroupにかかわらず)するはずなのに、(IEの出す)テキスト入力候補からマウスで選択して他へフォーカスを移したときには発動しない

●問題の起こっていた項目を正しく埋めた後にsubmitボタンをクリックする(エラーサマリが消えることでボタンの位置が上へずれ、submitボタンがマウスから外れる)と、エラー表示が消えるだけでsubmitされない

フォーカスが移ったときに検証が発動さえしなければこれらの問題は起きないのですが…
EnableClientScriptをオンにしたまま(submit時のクライアントサイド検証は有効にしたまま)、フォーカス移動時の検証を切ることはできないでしょうか?

テキストボックスのCausesValidationはオフ、submitボタンのCausesValidationはオンになっています。
Access
ぬし
会議室デビュー日: 2002/04/08
投稿数: 829
投稿日時: 2008-08-08 07:11
CustomValidatorコントールを利用して対処するしか
この問題を解決する方法はないように思いますけど。

私はこのような不都合を回避するために
EnableClientScript="False"にして、すべてサーバー側にて
エラーチェックさせています。

Webページには、[確認] [保存]といったようなボタンを配置して[確認]ボタンを
クリックしたときは、page.Validate()を実行させて検証処理を行います。

_________________
ASP.NET+Ajaxサンプル集 | JavaScript+Ajaxサンプル集
Sampo
会議室デビュー日: 2008/07/03
投稿数: 18
投稿日時: 2008-08-08 08:58
むむ。やはり不具合回避にはサーバサイド検証しかないですか…

うすうすわかってはいましたが、やはりそれしかないんですね。
1

スキルアップ/キャリアアップ(JOB@IT)