- PR -

ASP.NETでの検証に関して

1
投稿者投稿内容
べーちゃん
大ベテラン
会議室デビュー日: 2002/07/21
投稿数: 121
投稿日時: 2005-01-12 14:54
現在、一般公開用のサイトを構築しています。
特にOpera,Netscape,Fireboxなどメジャーなブラウザは一通り
サポートしなくてはならず、ちょっと問題を抱えています。

具体的にはテキストボックス等にRequireやRegularExpression等の
検証コントロールを貼り付けて入力チェックを行っているのですが、
IEの6だとCausasValidationがtrueのボタンをクリックした際、
まず検証が行われて、検証に引っかかった際にはボタンのクリックが
キャンセルされているようです。
ところがOperaやNetscape,Fireboxではこの機能がうまく働いて
いないようです。
というのも、他のブラウザではボタンのクリックイベント自体が
キャンセルされず、実行されるからです。
検証自体は行われるようで、ページ遷移しない場合は画面に
赤色でエラーが表示されています。

当初はターゲットが全てIE5.0以上となっていたのですが、今は2,3の
ページのドキュメントプロパティのターゲットブラウザをNN4に
変更して試してみています。ですが結果は変わりません。

どなたかこのことに関する情報をお持ちの方がおられましたら
教えていただけると助かります。どうかよろしくお願いします。
甕星
ぬし
会議室デビュー日: 2003/03/07
投稿数: 1185
お住まい・勤務地: 湖の見える丘の上
投稿日時: 2005-01-12 15:57
引用:

べーちゃんさんの書き込み (2005-01-12 14:54) より:
具体的にはテキストボックス等にRequireやRegularExpression等の
検証コントロールを貼り付けて入力チェックを行っているのですが、
IEの6だとCausasValidationがtrueのボタンをクリックした際、
まず検証が行われて、検証に引っかかった際にはボタンのクリックが
キャンセルされているようです。
ところがOperaやNetscape,Fireboxではこの機能がうまく働いて
いないようです。
というのも、他のブラウザではボタンのクリックイベント自体が
キャンセルされず、実行されるからです。
検証自体は行われるようで、ページ遷移しない場合は画面に
赤色でエラーが表示されています。


EnableClientScriptをFalseにすれば、取り合えずInternetExplorerでも、その他のブラウザでも同じ挙動になるようです・・・。と言っても、Firefox等の動きに合わせることになる訳ですが。そうして、Validaterのチェックに引っかかってもPostBackされるものと言う前提の下で作成するしか無いんじゃないかな。
この手のブラウザ毎の挙動の違いを纏めたり、IE以外のブラウザにも対応するためのTipsって何処かにまとまってないですかねぇ?
_________________
甕星 <mikahosi@abox9.so-net.ne.jp>
http://blogs.msmvp.jp/mikahosi/
小野@どっとねっとふぁん
ぬし
会議室デビュー日: 2001/10/30
投稿数: 402
投稿日時: 2005-01-12 16:07
ASP.NETでの検証はデフォルトではクライアント側とサーバ側で行われます。
クライアント側での検証はJScriptによって行われます。
ブラウザがIEの上位バージョンではない、と認識された時点でクライアント側の
検証が行われない(JScriptによるチェックを行わない)ようになっているのでは
ないでしょうか?

#未確認です。
べーちゃん
大ベテラン
会議室デビュー日: 2002/07/21
投稿数: 121
投稿日時: 2005-01-14 13:20
甕星さん、小野@どっとねっとふぁんさん情報どうもありがとうございました。

自分でもいろいろ調べてみて、英語サイトですが
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnaspp/html/ASPNet-JSPMig-MultiBrowserSupport.asp
というものを見つけました。

この情報によると小野さんがいわれているように、ブラウザがIEでなければ
クライアント側の検証が行われないようですね。
もう少し調べてみようと思います。

もし他にも情報をお持ちの方がおられましたらよければ教えてください。
1

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