2017-03-08 13 views
0

私は最初のDjangoアプリケーションを開発しており、それを最適化したいと考えています。フォームテンプレートで最後にアクティブなタブを取得するにはどうすればよいですか?私は作成または更新フォームからページ上の最後のアクティブなタブにリダイレクトしたいです。私はJavaScriptの知識がないので、私はいくつかの助けを望んでいます。djangoフォームテンプレートをクリックしてアクティブなタブを取得する

私はちょうど私のHTMLに追加します。

<script type="text/javascript"> 

     $('a[data-toggle="tab"]').click(function (e) { 
      e.preventDefault(); 
      $(this).tab('show'); 
     }); 

     $('a[data-toggle="tab"]').on("shown.bs.tab", function (e) { 
      var id = $(e.target).attr("href"); 
      localStorage.setItem('selectedTab', id) 
     }); 

     var selectedTab = localStorage.getItem('selectedTab'); 
     if (selectedTab != null) { 
      $('a[data-toggle="tab"][href="' + selectedTab + '"]').tab('show'); 
     } 
</script> 

答えて

0

ユーザーインターフェイス(アクティブなタブ)の情報を投稿するために探している、あなたが何らかの形で自分のフォームにそれを配置する必要がありますしようとしている場合。私の好みはJavaScript(これは理解しやすいかもしれないので、ちょうどjQueryに表示します)は、フォームに隠れたフィールドを更新するためにイベントをタブに付け加えたり(既存のイベントを変更して)あなたは、フォームでのタブの値を持つ必要がありますが、あなたは値を保持するためにforms.HiddenInput()のウィジェットタイプを使用してDjangoのフォームの定義に新しいフィールドを追加する必要があり、その後、更新することで例えば、

$(function() { 
// assumes an id=myhiddenfield on html element 
var form_field = $('#myhiddenfield'); 
// assumes your tabs all have a class of 'tabs', adds click element 
$('.tabs').on('click', function (e) { 
    e.preventDefault(); 
    // assign current tab's html id to form field 
    form_field.val(this.id); 
}); 
}) 

myhiddenfieldをその入力のCSS idの名前で置き換えます。

+0

ありがとうございます!この時点で、私は何をすべきか理解しています。しかし、私はこれをどのように実装するのですか? JavaScriptファイルを作成してテンプレートにロードしようとしましたが、うまくいきませんでした。 – Boerne

+0

どの部分がうまくいかないのですか?ファイルが読み込まれない、またはコードがエラーをスローしますか?あなたは[CDNから得ることができる](https://code.jquery.com/)というjQueryも含める必要があります。ファイルがロードされていない場合は、[静的ファイルの設定](https://docs.djangoproject.com/en/1.10/howto/static-files/)に問題がある可能性があります。その場合の最も簡単なことは、このコードをページの '

0

ブートストラップを使用している場合は、タグをアクティブなクラスに割り当てることで簡単に行うことができます。

<div class='active'></div> 
+0

これは静的なクラスです。私がしたいのは、クリックされたタブにアクティブなクラスを追加する動的な関数を得ることです。 – Boerne

+0

この場合、jQueryを使用してこのクラス属性をタグに割り当てることができます: '$(" tag_id ")。attr( 'class'、 'active')' –

関連する問題