0

私は以下のjqueryを使用して、AjaxControlToolkitタブコンテナでタブをクリックしたときの動作を制御しています。アクティブなタブを設定するためにTabpanelでブートストラップ・モーダルを使用する

隠しテキスト入力(hdnFormSaved)の値が "True"の場合、クリックされたタブはアクティブ(this.get_owner().set_activeTab(this))に設定されます。そうでないと、確認ダイアログが作成されます。クリックされたタブは、ダイアログで確認された場合にのみ有効に設定されます。

$(function() { 
    Sys.Extended.UI.TabPanel.prototype._header_onclick = 
     function (e) { 
      this.raiseClick(); 
       if ($("[id$=hdnFormSaved]").val() == "True") { 
        this.get_owner().set_activeTab(this); 
       } else { 
        if (confirm('Do you want to change tab?')) 
         this.get_owner().set_activeTab(this); 
        else 
         return false; 
       } 
     }; 
}); 

このソリューションは完全に機能します。しかし、確認ダイアログをブートストラップモーダルに置き換えたいと思います。

確認ダイアログではなく、elseブロック内でモーダルを初期化しています。ここからは、モーダルの[OK]ボタンをクリックすると、クリックされたタブをアクティブに設定する方法がわかりません。同じelseブロック内でイベントを聞くことはできますか?

$(function() { 
    Sys.Extended.UI.TabPanel.prototype._header_onclick = 
     function (e) { 
      this.raiseClick(); 
       if ($("[id$=hdnFormSaved]").val() == "True") { 
        this.get_owner().set_activeTab(this); 
       } else { 
        $('#myModal').modal(); 
       } 
     }; 
}); 

アドバイスをお待ちしております。ありがとう。私はモーダルOKボタンを#btn_okayのIDを与え、on無名関数にコンテキストを渡すためにjQueryのproxyを使用

$(function() { 
    Sys.Extended.UI.TabPanel.prototype._header_onclick = 
     function (e) { 
      this.raiseClick(); 
       if ($("[id$=hdnFormSaved]").val() == "True") { 
        this.get_owner().set_activeTab(this); 
       } else { 
        obj = this; 
        $('#myModal').modal(); 
         $("#btn_okay").on("click", $.proxy(function() { 
          this.get_owner().set_activeTab(this); 
         }, this)); 
     } 
    }; 
}); 

:以下のように解決

答えて

関連する問題