通过单击Django表单temp获取活动选项卡

2024-10-04 01:23:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在开发我的第一个Django应用程序,并想优化它。如何获取表单模板中的最后一个活动选项卡?我想从创建或更新表单重定向到页面上的最后一个活动选项卡。我对JavaScript一无所知,所以我希望能得到一些帮助。在

我只需在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>

Tags: djangoid应用程序表单datavarshowscript
2条回答

如果你想发布关于用户界面(活动标签)的信息,你需要把它放到你的表单中。我倾向于通过JavaScript来实现这一点(我将在jQuery中显示它,因为这可能更容易理解),方法是在选项卡上附加一个事件(或修改现有事件)来更新表单中的隐藏字段,例如

$(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);
});
})

这样,您就可以在表单中获得选项卡的值,但是您需要在Django表单的定义中添加一个新字段,该字段具有一个小部件类型forms.HiddenInput()来保存该值,然后用输入的CSS id的名称更新上面的myhiddenfield

如果您正在使用引导,那么您可以通过为标记分配一个活动类来轻松实现这一点。在

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

相关问题 更多 >