我在一个视图页面上有三个标签。其中一个选项卡是用于更新用户帐户的表单。由于此页面使用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>
答案 0 :(得分:0)
这里你有两个不同的问题:
您的JS代码会切换点击事件。首页加载时,没有点击,因此不会更改标签。您需要以某种方式指示哪个选项卡处于活动状态。我通常在服务器端通过向HTML元素添加active
类然后使用CSS突出显示/选择它来进行。
remote=>true
将执行ajax调用,它会返回一些东西。通常返回xml或json而不是HTML。我认为在您的情况下,您将返回包含Flash消息的HTML,但由于您的页面未刷新,因此您的浏览器不会显示它。