十月CMS在多种条件下触发表单字段


October CMS trigger form fields on multiple conditions

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

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-表单字段。我也知道如何在js中做到这一点

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

对我来说,像这个一样工作

价格:

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

即使这样也有效value[web][mobile]

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

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

但请记住,这只是为了告诉我们,多个值的触发条件是可能的,我仍然不知道为什么它不能与安装的october-min.js一起工作,可能是十月CMS团队正在处理它,他们可能会宣布正式更新。