クライアント側で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#
前のスレッド https://teratail.com/questions/o6s2ehnqbdz60v の続きもしくは関連する話ですよね。質問欄を編集して前のスレッドの url を書いてその話の続きであることを追記してください。
前のスレッドで「検証結果 NG の場合でもユーザーが OK すれば受け付けるなどというパターンは絶対にありません。検証結果 NG なら問答無用で受け付けないようにしないとセキュリティが保てませんので。」と言ったけど分かってますか? そこまで言ったのに無視して同じような質問をするとは・・・ 人の話を聞いてますか?
前のスレッド https://teratail.com/questions/o6s2ehnqbdz60v の続きもしくは関連する話ですよね。質問欄を編集して前のスレッドの url を書いてその話の続きであることを追記してください・・・ちゃんとやって
前のスレッド https://teratail.com/questions/o6s2ehnqbdz60v の続きもしくは関連する話ですよね。質問欄を編集して前のスレッドの url を書いてその話の続きであることを追記してください・・・これで 3 回目