<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により自動的に処理です。
http://d.hatean.ne.jp/amachang/
(URL はダミーです)
onclick="javascript:confirm('よろしいですか?')&&__doPostBack('Button1','')"
でどうでしょうか><?
最初に条件は提示されたほうがよいと思いますが、下記のようなサンプルは参考になるでしょうか。
<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"
の部分です。
この方法でいけました。ありがとうございます!
いつも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" />