0

我在一个视图页面上有三个选项卡。其中一个选项卡是用于更新用户帐户的表单。由于此页面使用 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

那么你在这里有两个不同的问题:

  • 您的 JS 代码确实打开了点击事件。当您的页面首次加载时,没有点击,因此不会更改选项卡。您需要以某种方式指示哪个选项卡处于活动状态。我通常在服务器端通过向activeHTML 元素添加类然后使用 CSS 突出显示/选择它来完成此操作。

  • remote=>true将执行 ajax 调用,这将返回给你一些东西。通常返回 xml 或 json 而不是 HTML。我认为在您的情况下,您返回的 HTML 将包含 Flash 消息,但您的浏览器不会显示它,因为您的页面没有刷新。

于 2012-05-23T15:47:23.150 回答