クライアント側で1回目のJSを上手く動かせる方法を教えていただければ幸いです。
クライアントからサーバーへsubmitされた時の処理なのですが、
まずDemandLinkButtonをクリックすると、サーバー側でCustomValidator1_ServerValidateのイベントが走ります。
結果がTrueならScriptを登録して、Confirmメソッドが働くような動きが実現できているのですが、
1回目だけですが、DemandLinkButtonをクリックしてもConfirmメソッドが働かないので、原因が分からなくて困っています。
お手数をおかけしますが、何卒宜しくお願い致します。
.aspx
<asp:Textbox ID="MoneyTextBox" runat="server" /> <asp:LinkButton ID="DemandLinkButton" runat="server" Text="申請" OnClick="DemandLinkButton_Click" /> <div> <asp:CustomValidator ID="CustomValidator1" runat="server" Display="Dynamic" ErrorMessage="" ControlToValidate="MoneyTextBox" OnServerValidate="CustomValidator1_ServerValidate"> </asp:CustomValidator> </div> <script type="text/javascript"> function TotalMoneyCheck() { $('#<%= DemandLinkButton.ClientID %>').click(function (){ return confirm("金額が違いますが、このまま申請してもよろしいですか?"); }); } </script>
.aspx.cs
//クライアントからサーバーへsubmitされた時の処理 protected void CustomValidator1_ServerValidate(object source, ServerValidateEventArgs args) { // テキストボックスへのユーザー入力が 200 以外ならScriptを登録する if (args.Value != "200") { // Scriptを登録し、aspx側に記載しているTotalMoneyCheck()関数を呼ぶ ScriptManager.RegisterStartupScript(this, this.GetType(), "TotalMoney", "TotalMoneyCheck();", true); } else { return; } } 補足ですが、ここではMoneyTextBox.Textの値は100とします。
追加情報(FW/ツールのバージョンなど)
Web Formsを利用し、開発をしています。
【開発環境】
開発環境 VisualStudio2019
言語 C#
回答2件