October CMS触发表单字段具有多个条件

3

我正在使用一个包含多个字段的表单。当创建表单视图被加载时,只有一个选择字段可见,其他字段设置为隐藏。一旦我更改了选择字段的选项,与该选项相关的特定字段将变为可见并将被隐藏。我使用了来自表单字段选项的触发事件来实现这一点。

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]

它的效果很好,但由于某些特定字段必须对两个或更多的选择选项可见,我不能应用此方法。比如,我想要在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个回答

3
对我来说,它的工作方式如下:
价格:
label: Price
type: text
trigger:
    action: show
    field: product_type
    condition: value[web] | value[mobile]

所以区别在于使用管道 | 表示“或” - 您想显示网站和移动值,而不是如果单个值同时为网站和移动。 - Paul Gregory
你的意思是“和”吗?如果你能做到,我不知道,抱歉。 - João Serra
即使这个值 value[web][mobile] 是有效的,我已经发布了一个答案。 - Vijay Wilson

0

即使这样也可以工作 value[web][mobile]

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

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

但请记住,这只是告诉您多个值的触发条件是可能的,我仍然不知道为什么它不能与安装的october-min.js一起使用,可能October CMS团队正在处理它,并可能会宣布官方更新。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接