JavaScriptについて質問です。


<input type="button" id="Button1" onclick="javascript:confirm('よろしいですか?');__doPostBack('Button1','')" />

のような記述をして、「よろしいですか?」のダイアログでOKをクリック
したときのみ後の__doPostBackを走らせるようにしたいです。
しかしこれだとOKでもキャンセルでも__doPostBackが走ってしまいました。

そこで、
javascript:return confirm('よろしいですか?');__doPostBack('Button1','')
を試したのですが、今度はOKでもキャンセルでも__doPostBackが走らなくなってしました。

どのようにしたら、OKをクリックしたときのみ__doPostBackを走らせることができるでしょうか。

ちなみに__doPostBackはASP.NETにより自動的に処理です。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:2007/11/07 22:50:07
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答2件)

id:amachang No.1

回答回数15ベストアンサー獲得回数3

ポイント32pt

http://d.hatean.ne.jp/amachang/

(URL はダミーです)

onclick="javascript:confirm('よろしいですか?')&&__doPostBack('Button1','')"

でどうでしょうか><?

id:html1983

いつもIT戦記、拝見しております。

説明がたりず申し訳ありません。

追加で説明させていただきます。

「;__doPostBack('Button1','')」がASP.NETにより追加される部分です。

「;」のところまでいじれないので、この方法はできなかったです。

具体的にはASP.NET の Buttonコントロールに「OnClientClick」というプロパティがあって

このプロパティにJavaScriptを書くと HTML生成時には<input>タグのonclick属性に変換されます。

そしてonclick属性の最後に「;__doPostBack('Button1','')」が追加されます。

[ASP.NET]

<asp:Button ID="Button1" OnClientClick='confirm("よろしいですか?")' runat="server" Text="Button" UseSubmitBehavior="False" />

[HTML]

<input type="button" name="Button1" value="Button" onclick="confirm("よろしいですか?");__doPostBack('Button1','')" id="Button1" />

2007/11/07 22:28:44
id:Mook No.2

回答回数1314ベストアンサー獲得回数393

ポイント38pt

最初に条件は提示されたほうがよいと思いますが、下記のようなサンプルは参考になるでしょうか。

<HTML>
<HEAD>
<SCRIPT TYPE="text/javascript">
function myFunc(){
	alert("ひっかかった!!!");
}
</SCRIPT>
</HEAD>
<BODY>
    <INPUT TYPE="button" VALUE="押してみて" ID="Button1" onclick="if (!confirm('本当にいいの?') ) return; myFunc();" />
</BODY>
</HTML>

つまり、追記するのは

OnClientClick="if (!confirm('本当にいいの?') ) return"

の部分です。

http://www.tagindex.com/javascript/window/confirm.html

id:html1983

この方法でいけました。ありがとうございます!

2007/11/07 22:49:25

コメントはまだありません

この質問への反応(ブックマークコメント)

トラックバック

  • 2007-11-08 00:28:53
「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません