- PR -

ASP.NETにおけるJavascriptのonChangeイベントについて

投稿者投稿内容
Juni
常連さん
会議室デビュー日: 2004/02/05
投稿数: 25
お住まい・勤務地: 兵庫県
投稿日時: 2004-02-24 14:49
いつも勉強させていただいております。

現在ASP.NETにおいてWebアプリケーションの開発を
行っておりますが、わからないことがあるので
どなたかお教えいただきたいと思います。

わからないことというのは、
ASP.NETにJavascriptを埋め込んで開発を行っているのですが、
JavascriptのonChangeイベントやonKeyPressイベントを記述したときに
タスク一覧に
「要素'TextBox'の属性'onChange'が見つかりませんでした。」
のエラーメッセージが出力されます。
しかし、そのまま実行するとプログラムは実行されるし
onChangeイベントも正しく機能しています。

これは、本当に正しく機能されているのでしょうか?
また、onChangeイベントを記述しなければValidationSummaryは
きちんと機能しますがonChangeイベントを記述すると正しく機能しなくなります。
これもエラーが表示されるのと関係があるのでしょうか?

どなたかおわかりの方がいればお教えいただきたいと思います。

よろしくお願いいたします。
きち
常連さん
会議室デビュー日: 2003/12/17
投稿数: 41
投稿日時: 2004-02-24 17:30
ValidationSummary云々とか分からないですので
自分の思っていることは的外れかも知れませんが・・

<asp:TextBox>にonChangeを直接書き込んでいるのでしょうか?
Page_Load内にて
TextBox1.Attributes.Add("onChange", "javascript関数名")
とする方法を使用するのはどうですか?
まゆりん
ぬし
会議室デビュー日: 2002/08/12
投稿数: 539
お住まい・勤務地: よこはま
投稿日時: 2004-02-24 17:46
とりあえず、差し支えなければソースを公開した方が早いかと。

_________________
まゆりん @ わんくま同盟
Blog る。
Juni
常連さん
会議室デビュー日: 2004/02/05
投稿数: 25
お住まい・勤務地: 兵庫県
投稿日時: 2004-02-24 17:54
きちさん、まゆりんさんご返事ありがとうございます。

引用:

まゆりんさんの書き込み (2004-02-24 17:46) より:
とりあえず、差し支えなければソースを公開した方が早いかと。



すみません。ソースは下記のようになっています。

<TD class="ditailcell"><asp:textbox id="TextBox1" onChange="Calculation(1)" onKeyPress="return KeyCheck()" runat="server"MaxLength="16"CssClass="txtBoxKin">0</asp:textbox>

Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-02-24 20:47
 <asp:textbox>にonChangeなんてありました?少なくとも、私の環境(VS.NET2003)では、インテリセンスに出てこないのですが?
Juni
常連さん
会議室デビュー日: 2004/02/05
投稿数: 25
お住まい・勤務地: 兵庫県
投稿日時: 2004-02-25 09:17
Jittaさんご返事ありがとうございます。
引用:

Jittaさんの書き込み (2004-02-24 20:47) より:
 <asp:textbox>にonChangeなんてありました?少なくとも、私の環境(VS.NET2003)では、インテリセンスに出てこないのですが?



確かにインテリセンスには出てこないのですが(私もVS.NET2003を使用しています)、
試しに記述してみたところ動作したので問題ないと思ったのですが・・・。

<asp:textbox>にはOnTextChangedがあると思いますが、これを使用して同じようにJavaScriptのfunctionを実行しようとすると
「BC30456: 'Calculation' は 'ASP.Form1_aspx' のメンバではありません。」
というコンパイルエラーが出てしまうため先述のようにしてみたのです。

やはり、何かまずいでしょうか?
まゆりん
ぬし
会議室デビュー日: 2002/08/12
投稿数: 539
お住まい・勤務地: よこはま
投稿日時: 2004-02-25 09:27
HTML側(デザイン)はビルドしない(ていうか出来ない)ので
エラー表示されていても実行します。

確かにWebサーバコントロールにはonChangeなどのイベントはありません。
しかし、実行してブラウザに表示された時は
<input name="TextBox1" type="text" maxlength="16" id="TextBox1" class="txtBoxKin" onChange="Calculation(1)" onKeyPress="return KeyCheck()" />
と表示されますので、エレメントに対するイベントとしては正しいです。
#個人的には直接入れるより
#TextBox1.Attributes.Add("onchange","Calculation(1)")
#ってやりますけど。

で、私が確認したかったのは提示していただいた個所(textbox)ではなく、
ValidationSummaryの方だったりするんですね^^;
引用:

Juniorさんの書き込み (2004-02-24 14:49) より:
また、onChangeイベントを記述しなければValidationSummaryは
きちんと機能しますがonChangeイベントを記述すると正しく機能しなくなります。
これもエラーが表示されるのと関係があるのでしょうか?


正しく機能しないというのは具体的にどういうことですか?

※確認環境:VS.NET2003


_________________

まゆりん@人生Try and Error!(笑)

[ メッセージ編集済み 編集者: まゆりん 編集日時 2004-02-25 09:33 ]
かめたろ
ぬし
会議室デビュー日: 2003/03/20
投稿数: 255
投稿日時: 2004-02-25 09:30
1.WEBサーバーコントロールのjavascriptのイベントについて
   きちさんのご指摘通り、コードビハインド側で
    TextBox1.Attributes.Add("onChange", "Calculation(1)")
    TextBox1.Attributes.Add("onKeyPress", "return KeyCheck()")
   とするのが普通だと思います。

2.ValidationSummaryが正しく機能しないことについて
   ValidatorのonChange ⇒ 自分で記述したonChange
   の順番でイベントが発生していると思われます。
   従って、Summaryには1アクション前の検証結果が表示されているのでは・・・?
   スクリプトデバッガで確認してみましょう。
   過去スレッド↓
   http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=8774&forum=7

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