编程语言
首页 > 编程语言> > javascript-删除敏捷内容类型上的fieldset选项卡界面

javascript-删除敏捷内容类型上的fieldset选项卡界面

作者:互联网

添加内容类型的对象时,我需要添加一个条件以避免加载一些JavaScript代码;以下条件仅在编辑对象时有效:

<?xml version="1.0"?>
<object name="portal_javascripts">
 <javascript id="form_tabbing.js"
   expression="python:object.portal_type != 'collective.nitf.content'" />
</object>

此javascript代码负责创建选项卡界面,但在我的用例中我想绕过它.

有什么提示吗?

解决方法:

实际上,您可以通过其他方式解决此问题.

除了避免加载Javascript文件(当涉及到缓存等操作时,这会带来讨厌的后果),您还可以避免它对表单起作用.

* form_tabbing.js *将使用enableFormTabbing类查找表单元素:

<form class="enableFormTabbing">
  <fieldset id="fieldset-[unique-id]">
    <legend id="fieldsetlegend-[same-id-as-above]">Title</legend>
  </fieldset>
</form>

因此,您所需要做的就是避免获取此enableFormTabbing类的形式.

由于您的内容类型是使用敏捷创建的,因此建议您按如下方式重写AddForm:

class AddForm(dexterity.AddForm):
    """Default view looks like a News Item.
    """
    grok.name('collective.nitf.content')
    grok.layer(INITFBrowserLayer)

    enable_form_tabbing = False

多亏了plone.app.z3cform魔术,enable_form_tabbing属性将允许您控制表单上的制表符.

同样适用于EditForm.

希望能有所帮助

标签:dexterity,genericsetup,javascript,plone
来源: https://codeday.me/bug/20191102/1987780.html