出来るのだASP Q&A掲示板(過去LOG)  訪問数 52046 昨日 889 今日 776
    【PR】 パソコン入門からIT専門書まで幅広く取り揃えています。セブン-イレブン受取り手数料無料のセブンアンドワイ。
Topに戻る 掲示板に戻る 検索 削除 管理者

button OnClick イベント:VBScript JavaScript での動作の違い   こえださん [2002/06/17 22:44:07] [2190]
  Re:button OnClick イベント:VBScript JavaScript での動作の違い   くっくさん [2002/06/18 7:40:55] [2192]
    Re:button OnClick イベント:VBScript JavaScript での動作の違い   こえださん [2002/06/18 17:36:45] [2195]

[2190] button OnClick イベント:VBScript JavaScript での動作の違い
投稿者:こえださん 2002/06/17 22:44:07
みなさん、こんにちわ。必ずしもASPで開発していての現象ではないと
思うので、場違いの質問でしたら申し訳ありません。

ASPで開発をしていますが、ページ内のクライアントスクリプトで私に
は理解できない動作をします。フォームのボタンが以下のようになって
いるとして

<INPUT type="button" value="登録" id=btSubmit name=btSubmit onclick="btSubmit_onclick()">

このイベントハンドラ btSubmit_onclick() は、VBScriptで

<SCRIPT LANGUAGE=VBScript>
<!--
sub btSubmit_onclick()
msgbox "テスト"
end sub
//-->
</SCRIPT>

こうなってるとします。するとこのハンドラは2回呼ばれてしまうのです。ちなみに、JavaScript でまったく同じように書くと1回です。

環境は、IE6.02、IIS5.0です。
できれば、クライアントもサーバーもすべてVBScriptで記述したいので、何が原因かおわかりの方、よろしくお願いいたします。

[2192] Re:button OnClick イベント:VBScript JavaScript での動作の違い
投稿者:くっくさん 2002/06/18 7:40:55
> みなさん、こんにちわ。必ずしもASPで開発していての現象ではないと
> 思うので、場違いの質問でしたら申し訳ありません。
>
> ASPで開発をしていますが、ページ内のクライアントスクリプトで私に
> は理解できない動作をします。フォームのボタンが以下のようになって
> いるとして
>
> <INPUT type="button" value="登録" id=btSubmit name=btSubmit onclick="btSubmit_onclick()">
>
> このイベントハンドラ btSubmit_onclick() は、VBScriptで
>
> <SCRIPT LANGUAGE=VBScript>
> <!--
> sub btSubmit_onclick()
> msgbox "テスト"
> end sub
> //-->
> </SCRIPT>
>
> こうなってるとします。するとこのハンドラは2回呼ばれてしまうのです。ちなみに、JavaScript でまったく同じように書くと1回です。

おそらく、Sub btSubmit_onclickを記述している時点で、
btSubmitのonClickイベントを拾ってしまうのではないでしょうか?
そして、更にonClickイベントでbtSubmit_onclickを呼んでいるから
2回呼ばれていることになると思います。

例えば、

<INPUT type="button" value="登録" name="btSubmit">

<SCRIPT LANGUAGE=VBScript>
<!--
sub btSubmit_onclick()
msgbox "テスト"
end sub
//-->
</SCRIPT>

としてやると、1回のみ呼ばれます。

[2195] Re:button OnClick イベント:VBScript JavaScript での動作の違い
投稿者:こえださん 2002/06/18 17:36:45
くっくさん

コメントありがとうございました。

> おそらく、Sub btSubmit_onclickを記述している時点で、
> btSubmitのonClickイベントを拾ってしまうのではないでしょうか?

なるほど・・。そういう事なのですね。アドバイス通りにしてみたら
確かに2度呼ばれなくなりました。クライアントスクリプトはみな
同じ動作をすると思っていましたが、やはり VBScript + IE は少し
事情が違うようですね。

現在 VC++ & ASP で開発してるもので、言語が3種類になるとだんだん
頭がスパゲッティになってきます。これで Web 側は VBScript に
絞れます。大変勉強になりました。ありがとうございました。

> そして、更にonClickイベントでbtSubmit_onclickを呼んでいるから
> 2回呼ばれていることになると思います。
>
> 例えば、
>
> <INPUT type="button" value="登録" name="btSubmit">
>
> <SCRIPT LANGUAGE=VBScript>
> <!--
> sub btSubmit_onclick()
> msgbox "テスト"
> end sub
> //-->
> </SCRIPT>
>
> としてやると、1回のみ呼ばれます。



TreeBBS For ASP V.0.1.3
Program By YasNet