- - PR -
ASP.NETにおけるJavascriptのonChangeイベントについて
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2004-02-25 09:41
まゆりんさんご返事ありがとうございます。
説明不足で申し訳ありません。 正しく機能しないというのは、Enterを押したときに実行されないということです。 具体的には、 現在ValidationSummaryにてTextBoxの数値チェックを行い、エラーがあると メッセージボックスを出力するという処理をしているのですが、 TextBoxに数値以外を入力した場合、onChangeイベントを記述していると Enterキーを押した場合にメッセージが表示されずにそのテキストボックス の内容が空白になってしまいます。 onChangeイベントを記述しなければちゃんとメッセージボックスが出力されるのですが・・・。 まだWebアプリの開発を始めて一ヶ月弱なので知識不足で 原因や対処法がわからずに困ってます。 どうぞよろしくお願いいたします。 | ||||||||
|
投稿日時: 2004-02-25 09:55
かめたろさんご返事ありがとうございます。
このような記述の方法があると自体知りませんでした。 試しに記述して実行してみたいと思います。
過去スレッドを探して確認してみます。 貴重なご意見どうもありがとうございます。 | ||||||||
|
投稿日時: 2004-02-25 12:22
> タスク一覧に
> 「要素'TextBox'の属性'onChange'が見つかりませんでした。」 > のエラーメッセージが出力されます。 <asp:TextBox>に、onchangeという属性がないからですね。これはまゆりんさんのご指摘通り、HTML要素に展開されるとき、"そのまま"出力されているようですね。 > 「BC30456: 'Calculation' は 'ASP.Form1_aspx' のメンバではありません。」 > というコンパイルエラーが出てしまうため先述のようにしてみたのです。 こちらは、OnTextChangedはサーバサイドのイベントのため、ですね。 ところで、処理の内容は・・・ ・テキストボックスがある ・テキストボックスには数値のみ入力可能である ・数値のみとするため、keypressイベントでチェックする ・入力された数値を確認するため、onchangeイベントをチェックする ・onchangeイベントで何をしますか? また、ValidationSummaryを置いているということですが、ValidationSummaryはValidatorコントロールに依存していると思っているのですが、どんなValidatorコントロールを置いて、どのようにチェックしているでしょうか?また、Validatorコントロールを置けば、onchangeイベントの記述は不要では? ValidatorSummaryって、onchangeで機能しましたっけ?ポスト前、またはonblurではなかったですか?onchangeで機能するなら、例えば入力制限を「.{4}」とか(必ず4文字)としていると、1文字目、2文字目、3文字目の入力でアラートが表示されてしまいますよね?アラートボックスを表示させていたら、入力できないですよ。 | ||||||||
|
投稿日時: 2004-02-25 13:27
Jittaさんご返事ありがとうございます。
たびたび説明不足で申し訳ありません。 処理の内容は以下のとおりです。 ・フォームに複数のTextBoxがあります。 ・onKeyPressにて「1〜9」および「-」ボタンのみ有効にする。 ・各TextBoxに対してCompareValidatorにて数値かどうかのチェックを行う。 ・onChangeイベント発生時に、各TextBoxの値を加算および金額表示(カンマ編集) を行う。 Enterを押したときにValidationSummaryにて全項目の最終チェック(数値かどうかのチェック)を行う。 という処理をしようと思っています。 つまり、onchangeイベント時とEnter押下時に二重で項目にチェックを掛けたいと考えています。 このような処理を行いたいと思い先述のようなコーディングをしております。 やはりonchangeとValidationSummaryの併用は難しいのでしょうか?
| ||||||||
|
投稿日時: 2004-02-25 13:58
ValidationSummaryは、Validatorコントロールのサマリーを表示するもので、検証(チェック)は行わないのでは?つまり、onchangeを追加した…と、ValidationSummaryは関係ないと思います。
Enterキーを押したら・・・ということですが、標準ではページの先頭にある<input type=submit>がクリックされます。この動きを変えているということでしょうか。 とにかく、まずはHTMLソースを確認してみては? | ||||||||
|
投稿日時: 2004-02-25 15:47
Jittaさんご返事ありがとうございます。
ご指摘の後、いろいろ試してみましたが、 onchangeを使用するのと使用しないのとでは下記のような違いがありました。 ・onchangeを使用するTextBoxに誤った値をいれてTabキーを押下すると TextBoxの中身が空白になった後にFocusが移動する。 ・onchangeを使用しないTextBoxでは、誤った値が残ったままFocusが移動する。 ・そこでEnterキーを押下するとonchangeを使用しないTextBoxのエラーのみが ValidationSummaryによって出力する。 上記のような動きでしたので、ValidationSummaryの元となるValidatorのほうに 影響があったのに気付かずに、ValidationSummaryに影響があったと 勘違いしてしまいました。 もしかするとかめたろさんの指摘のとおり、 [ValidatorのonChange ⇒ 自分で記述したonChange ] の順で実行されてしまうので上記のような動きになってしまうのかなと思うのですが…。 過去ログを見てみるとこれを変更するのは簡単にはできないとのことだったので、 どうしようか思案中です。 もし何か対処法をご存知の方がいればお教えください。 それともこれは私の検討違いなのでしょうか・・・? | ||||||||
|
投稿日時: 2004-02-25 15:52
Jittaさんご返事ありがとうございます。
ご指摘の後、いろいろ試してみましたが、 onchangeを使用するのと使用しないのとでは下記のような違いがありました。 ・onchangeを使用するTextBoxに誤った値をいれてTabキーを押下すると TextBoxの中身が空白になった後にFocusが移動する。 ・onchangeを使用しないTextBoxでは、誤った値が残ったままFocusが移動する。 ・そこでEnterキーを押下するとonchangeを使用しないTextBoxのエラーのみが ValidationSummaryによって出力する。 上記のような動きでしたので、ValidationSummaryの元となるValidatorのほうに 影響があったのに気付かずに、ValidationSummaryに影響があったと 勘違いしてしまいました。 もしかするとかめたろさんの指摘のとおり、 [ValidatorのonChange ⇒ 自分で記述したonChange ] の順で実行されてしまうので上記のような動きになってしまうのかなと思うのですが…。 過去ログを見てみるとこれを変更するのは簡単にはできないとのことだったので、 どうしようか思案中です。 もし何か対処法をご存知の方がいればお教えください。 それともこれは私の検討違いなのでしょうか・・・? | ||||||||
|
投稿日時: 2004-02-25 15:56
ボタンをclickしたら一気にカンマ編集や検証などをする・・・・とか^^;
どちらかを諦めるのが得策かと思います。 _________________ まゆりん @ わんくま同盟 Blog る。 |