2016-09-08 21 views
2

フォーム用のブートストラップタブを使用しています。各タブにはフォームIDがあります。フォームIDを使用してフォームを送信したい私のフォーム提出は正常に動作します。タブを5回クリックすると、サーバーに5回データが送信されます。私のproblem.Also最初のタブフォームがロード
上の文書中に提出されていないことは、私のHTMLコードを下に添付されています:ここでは 私のコードです: http://www.bootply.com/asHAcXeSbyブートストラップタブjqueryでフォームIDを使用して複数フォームを送信

HTML:

<ul class="nav nav-tabs "> 
    <li class="active"><a href="#academic" data-toggle="tab" aria-expanded="true"> ABC</a></li> 
    <li class=""><a href="#extra" data-toggle="tab" aria-expanded="false"> DEF</a></li> 
</ul> 
<div class="tab-content"> 
    <div id="academic" class="tab-pane fade active in"> 
    <form role="form" method="post" action="" id="academic_dtls"> 
     <input name="xyz" type="text"> 
     <input name="submit" value="Save" type="submit"> 
    </form> 
    </div> 
    <div id="extra" class="tab-pane"> 
    <form role="form" method="post" action="" id="extra_dtls"> 
     <input name="mnz" type="text"> 
     <input name="submit" value="Save" type="submit"> 
    </form> 
    </div> 
</div> 

JS:

$(document).ready(function(){ 

    var activeTab = null; 
    $('a[data-toggle="tab"]').on('show.bs.tab', function (event) { 
    activeTab = $(event.target).attr("href"); 
    submit_form(); 
    }); 
    function submit_form(){ 
    $('form').submit(function(e){ 
     e.preventDefault(); 
     //alert($(this).attr('id')); 
     var data = $(this).serialize(); 
     console.log(data); 
    }); 
    } 
}); 
+0

を見せていたすべての時間はここにあなたのコードを表示しました。 –

+0

Bootplyのリンクはポスト – Alien

答えて

0

このチェック:http://www.bootply.com/fCNm9iQ7t1 をあなたがやっていた間違いは、あなたが提出したイベントを結合されたタブが

$(document).ready(function(){ 

    var activeTab = null; 
    $('a[data-toggle="tab"]').on('show.bs.tab', function (event) { 
    activeTab = $(event.target).attr("href"); 
    }); 
    $('form').submit(function(e){ 
     var data = $(this).serialize(); 
     console.log(data); 
    }); 

}); 
+0

にあります。これは、フィドルでうまく動作しますが、私のアプリケーションでは、IDはタブの初期化なしでは動作しません。まず、あなたが説明したのと同じアプローチを使用していました。それが動作していないときは、私は – Alien

+0

と記載されている方法を使用してjqueryの競合があるかもしれません。フォームにクラスを与えてから、関数を呼び出すことを試みてください。 – Ish

+0

私はフォームで別のクラスを使用しますが、動作しませんでした。フォームタグがタブの前に初期化されると、メソッドはうまく動作しますが、フォームタグがタブの内側にあるときは機能しません – Alien

0
$(document).ready(function(){ 

    $('form').submit(function(e){ 
     e.preventDefault(); 
     //alert($(this).attr('id')); 
     var data = $(this).serialize(); 
     console.log(data); 
    }); 

    var activeTab = null; 
    $('a[data-toggle="tab"]').on('show.bs.tab', function (event) { 
    activeTab = $(event.target).attr("href"); 
    }); 

}); 
関連する問題