0

1 つのビュー ページに 3 つのタブがあります。タブの 1 つは、ユーザー アカウントを更新するためのフォームです。このページは jquery を使用しているため、ページを更新するたびに、現在のタブではなく最初のアクティブなタブに戻ります。:remote=> trueこのコード行に追加することでこれを修正しました<%= semantic_form_for @user, :remote => true do |f| %>。これにより、最初のアクティブなタブに戻らずにフォームが更新されます。

問題は、表示されないフラッシュ通知があることです。を削除すると正常に:remote => true動作しますが、メインのアクティブなタブに戻ります。

助言がありますか?前もって感謝します。

ここでタブを切り替えるJS:

<script type="text/javascript">
$(document).ready(function() {

$('.tabs a').click(function(){
    switch_tabs($(this));
});

switch_tabs($('.active'));

});

function switch_tabs(obj)
{
$('.tab-content').hide();
$('.tabs a').removeClass("active");
var id = obj.attr("rel");

$('#'+id).show();
obj.addClass("active");
}
</script>
4

1 に答える 1

0

ここには2つの別々の問題があります:

  • あなたのJSコードはクリックイベントで切り替えます。ページが最初に読み込まれるときはクリックがないため、タブは変更されません。どのタブがアクティブかをどうにかして示す必要があります。私は通常、サーバー側でactiveクラスを HTML 要素に追加し、CSS を使用してそれを強調表示/選択します。

  • remote=>true何かを返す ajax 呼び出しを実行します。通常、HTML ではなく、xml または json が返されます。あなたの場合、フラッシュメッセージを含む HTML を返していると思いますが、ページが更新されていないため、ブラウザには表示されません。

于 2012-05-23T15:47:23.150 に答える