2

私はjqueryダイアログを使用しています。ユーザーが[OK]をクリックすると、サーバー側のonclickイベントが発生し、[キャンセル]をクリックしても何も起こりませんでした。

私は preventDefault() 関数によって最初にクリック機能を防ぐ必要があります。

  $(document).ready(function () {
         $("#<%=submit.ClientID %>").click(function (event) {
             event.preventDefault();
                $("#confirm").dialog({
                    buttons: {
                        "OK": function () {  $(this).dialog("close"); 
                              Here should be the code to trigger the server side click event


                     },
                        "Cancel": function () { $(this).dialog("close");},
                    } 
                });
         });
     });

サーバー側の onclick イベントをトリガーする方法がわかりません。何か案は?ありがとう

4

4 に答える 4

1

https://stackoverflow.com/a/10583339/1202242

2 つのボタンを使用し、1 つが非表示になっています。それは私の問題を完全に解決しました

于 2012-05-18T12:53:02.030 に答える
0

サーバー側とクライアント側を混同していると思います。サーバー側でイベントをトリガーしたい場合は、彼に通知する必要があります (ajax 呼び出しで実行できます)。クリック イベントはクライアント側のイベントで、サーバー側では何もしません。「OK」関数の下にコードを配置して、 ajax呼び出しを介して好きなものをサーバーに通知してみてください。

event.preventDefault()とにかく、呼び出しを「キャンセル」機能に移動する必要があります。

編集:それにアプローチする別の方法は、送信したくない場合に送信を防止することです。フォームタグに次を追加onsubmit="foo()" して定義します。

function foo(){
   //call your dialog and return true to continue the submit and false to cancel.
}
于 2012-05-11T18:57:51.067 に答える
0

実装の詳細に少し依存しているように見えますが (非常に広く使用されているため変更されない場合でも)、コードは次のとおりです。

__doPostBack('submit','OnClick');

これによりOnClick、 という名前のコントロールのイベント ハンドラーが実行されsubmitます。参考として、ASP.NET でポストバックがどのように機能するかについて、この小さなチュートリアルをご覧ください。

于 2012-05-11T18:58:35.883 に答える
0

event.preventDefault()をキャンセル部分または何らかの条件に入れて、クリックごとに実行されないようにします。

于 2012-05-11T18:56:14.557 に答える