十月CMS触发多个条件下的表单字段

时间:2016-04-12 11:53:05

标签: php yaml octobercms

我正在使用包含多个字段的表单。加载创建表单视图时,只有选择字段可见,其他字段设置为隐藏。一旦我更改了选择字段的选项,有关该选项的特定字段将可见并将被隐藏。我使用表单字段选项中的触发器事件来完成此操作。

product_type:
    label: Choose type
    type: dropdown
    options:
        web: Web 
        mobile: Mobile 

title:
    label: Title
    type: text
    trigger:
        action: show
        field: product_type
        condition: value[web]

它工作正常,但由于某些特定字段必须对两个或更多选择选项可见,我无法应用此方法。比如说,我想要为网络和移动设备显示价格字段。但我无法使用附加值设置触发条件。我从文档中提到了这一点。 https://octobercms.com/docs/ui/input-trigger。但它不起作用

price:
    label: Price
    type: text
    trigger:
        action: show
        field: product_type
        condition: value[web][mobile]

目前我通过在模型中定义 filterFields方法解决了这个问题。 https://octobercms.com/docs/backend/forms#filter-form-fields。我也知道如何在 js

中执行此操作

但我想知道的是触发条件为何不支持多个值。或者我犯了什么错误。或者我是否应该包含其他内容?

2 个答案:

答案 0 :(得分:2)

对我来说就是这样的作品

价:

label: Price
type: text
trigger:
    action: show
    field: product_type
    condition: value[web] | value[mobile]

答案 1 :(得分:0)

即使这也适用于值[网络] [移动设备]

label: Price
type: text
trigger:
    action: show
    field: product_type
    condition: value[web][mobile]

但不是当前版本的october-min.js,因为 js 的某些部分已被弃用。我通过查看文档中 js 文件的pagesource来识别这一点 https://octobercms.com/docs/ui/input-trigger。在本文档中,提到它是可能的,它也适用于那里提供的示例。因此,使用文档 js 文件中定义的触发条件函数替换本地js文件中定义的触发条件函数。在本地,js文件位于 modules \ backend \ assets \ js \ october-min.js 中。当您查看页面源时,您可以找到iframe;查看iframe的pagesource并获取js文件。否则你可以从http://kopy.io/tyehc获得触发条件函数。

但请记住,这只是为了告诉多个值的触发条件是可能的,我仍然不知道为什么它不能使用已安装的october-min.js,可能是10月CMS团队可能正在努力它们和他们可能会宣布正式更新。