首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何为Dexterity Plone类型的添加/编辑表单添加"next fieldset“按钮

如何为Dexterity Plone类型的添加/编辑表单添加"next fieldset“按钮
EN

Stack Overflow用户
提问于 2012-11-03 07:29:12
回答 1查看 289关注 0票数 0

我有一个Dexterity类型,它有多个字段集,还有一个内置的Javascript,它允许在添加或编辑时一次显示一个字段集。

但是我想邀请用户按顺序遍历字段集,所以我的理想情况是直到最后一个字段集可见时才显示"Submit“按钮,而是在最后一个字段集之前显示NEXT><PREVNEXT>按钮。

我猜这是一种行为?但我对如何添加它以及如何控制它感到有点迷茫。我目前使用的是默认的EditForm,我更喜欢做一些小的调整,但如果这意味着要自己构建表单,那也没问题。我只想知道这是否是获得这个附加的唯一方法,这似乎不太可能。

EN

Stack Overflow用户

回答已采纳

发布于 2012-11-03 15:55:53

字段集可以通过一些额外的JavaScript魔术来添加“上一步”和“下一步”按钮。下面是我在当前项目中使用的内容:

代码语言:javascript
复制
var prevnext = {
    formTabs: null,

    next: function() { prevnext.formTabs.data('tabs').next(); prevnext._scrollToTop(); },
    prev: function() { prevnext.formTabs.data('tabs').prev(); prevnext._scrollToTop(); },

    _scrollToTop: function() {
        $(window).scrollTop(prevnext.formTabs.closest('form').offset().top);  
    },

    showButtons: function(event, index) {
        var tabs = prevnext.formTabs.data('tabs'),
            index = typeof(index) === 'undefined' ? tabs.getIndex() : index,
            current = tabs.getTabs()[index],
            count = tabs.getTabs().length;

        $('#prevnext_previous').toggle(index !== 0);
        $('#prevnext_next').toggle(index !== (count - 1));

        $('.formControls:last :submit[name=form_submit]').toggle(index === )count - 1));
    },

    init: function() {
        var tabs;
        prevnext.formTabs = $('.formTabs');
        tabs = prevnext.formTabs.data('tabs');
        if (tabs.getTabs().length > 0) {
            if ($('fieldset#fieldset-distribution').length === 0)
                 return;
            $('.formControls:last :submit:first')
                .before($('<input id="prevnext_previous" class="context" ' +
                          '       type="button" value="" />')
                      .val('< Previous')
                      .click(prevnext.prev))
                .before(document.createTextNode(' '));
            $('.formControls:last :submit:first')
                .before($('<input id="prevnext_next" class="context" ' +
                          '       type="button" value="" />')
                      .val('Next >')
                      .click(prevnext.next))
                .before(document.createTextNode(' '));
            prevnext.showButtons();
            tabs.onClick(prevnext.showButtons);
        }
    }
};

$(prevnext.init());
票数 1
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13204429

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档