- - PR -
CompareValidatorコントロールが反応しません
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2003-11-20 20:20
ASP.NETの質問です。
JavaScriptからテキストボックスに値を入力した場合 CompareValidatorコントロールが反応しません。 どうすればよいでしょうか? よろしくお願いします。 | ||||
|
投稿日時: 2003-11-21 11:16
どう反応しませんか?このコントロールはポストバックしたときに、ロードイベントの前にバリデートイベントが発生し、そのイベントハンドラで検証されます。
クライアントサイドで検証しているなら、フォーカスが離れたイベントを発生させてやる必要があると思います。 | ||||
|
投稿日時: 2003-11-21 18:00
>クライアントサイドで検証しているなら、
>フォーカスが離れたイベントを発生させてやる必要があると思います。 ・・・ということで 間違った型によりエラーが表示されている状態で obj.focus() obj.value = "正しい型の値"; obj.blur() とやっても、エラーメッセージが消えません。 (手入力で正しい型の値を入力すると消えます。) ちなみにクライアントサイドのチェックです。 現在は、JavaScriptで型チェックをするようにしました。 | ||||
|
投稿日時: 2003-11-22 18:54
それは、ページが表示されたときにソースを見て確認してください。もしかしたら、ポストするときに検証関数をコールしているかもしれません。検証関数は開発者が用意しますから、何らかのアクションでコールしてやればいいのでは?
| ||||
|
投稿日時: 2003-11-25 10:03
>ページが表示されたときにソースを見て確認してください。
確認したところ"onsubmit()"に"ValidatorOnSubmit()"という関数がありました。 これをテキストボックスのonBlur()で呼んでみてもダメでした。 | ||||
|
投稿日時: 2003-11-25 11:45
確認しますが、検証コントロールのプロパティを、「クライアント検証」にしていますか? (詳しいプロパティは今調べられないので、調べてください) 私が、テキストボックスに「HTMLの要素と間違えられそうな入力を許可」するために調べたときには、クライアント側で検証するためには、クライアント側コードを自分で実装しなければならなかったのですが、seriousさんのこの書き方では、フレームワーク(か、何か)が自動で用意するメソッドをコールしようとしているように思います。もしそうなら、実際には検証しないメソッドだと思うのですが。。。 | ||||
|
投稿日時: 2003-11-25 11:56
こんにちは、Ru.Fと申します。
解決済みであれば良いのですが。 function myFunc() { TextBox1.value="test"; if (typeof(Page_ClientValidate) == 'function') Page_ClientValidate(); } Page_ClientValidate()という処理は、HTMLソース冒頭付近にある 以下の"WebUIValidation.js"に記述されています。 <script language="javascript" src="/aspnet_client/system_web/1_1_4322/WebUIValidation.js"></script> | ||||
|
投稿日時: 2003-11-25 18:09
Page_ClientValidate()でOKでした。
Jittaさん、Ru.Fさんありがとうございました。 |
1