1

我正在使用SurveyJS上的“问题之间共享数据”示例。

我询问的是企业名称,而不是“雇主”,然后继续询问每个企业的营业时间。

要复制该问题,您将输入 2 个或更多业务。在下一页上,如果第一个布尔问题回答为真,则开放时间问题是“可见的”。

这适用于第一个业务,但是,后续业务挂起第一个布尔结果而不是他们自己的布尔结果。

这意味着“可见如果”条件仅适用于第一个业务,如果后续业务对布尔值回答“否”,这不会影响营业时间问题对他们的显示方式。

如何使营业时间问题针对每个单独的业务而不是第一个业务?

我在下面包含了JSON 文件,希望能更好地解释这个问题。

我相信这个问题是因为 'visbleif' 的目标是 business(0).seperateopeninghours,即由于0部分总是查看集合中的第一项。

有没有办法根据您正在查看的业务更改此数字?

{
    "pages":[
        {
            "name":"page1",
            "elements":[
                {
                    "type":"matrixdynamic",
                    "name":"BusinessName",
                    "title":"Enter Business name(s)",
                    "valueName":"businesses",
                    "isRequired":true,
                    "columns":[
                        {
                            "name":"BusinessName",
                            "title":"Name of business",
                            "cellType":"text",
                            "isRequired":true
                        }
                    ],
                    "rowCount":1,
                    "minRowCount":1,
                    "addRowText":"Add another business"
                }
            ],
            "title":"CoMap Business Profiler"
        },
        {
            "name":"page2",
            "elements":[
                {
                    "type":"paneldynamic",
                    "name":"arrray_employer_info",
                    "title":"Your businesses",
                    "valueName":"businesses",
                    "templateElements":[
                        {
                            "type":"boolean",
                            "name":"SeparateOpenning",
                            "title":"does {panel.BusinessName} have different opening hours?"
                        },
                        {
                            "type":"matrixdropdown",
                            "name":"OpenClosed1",
                            "visibleIf":"{businesses[0].SeparateOpenning} = true",
                            "title":"Which days is {panel.BusinessName} open?",
                            "columns":[
                                {
                                    "name":"Closed",
                                    "title":"Open or Closed?",
                                    "cellType":"boolean",
                                    "labelTrue":"Closed",
                                    "labelFalse":"Open"
                                }
                            ],
                            "cellType":"boolean",
                            "rows":[
                                "Monday",
                                "Tuesday",
                                "Wednesday",
                                "Thursday",
                                "Friday",
                                "Saturday",
                                "Sunday"
                            ]
                        },
                        {
                            "type":"matrixdropdown",
                            "name":"OpeningHours1",
                            "visibleIf":"{businesses[0].SeparateOpenning} = true",
                            "startWithNewLine":false,
                            "title":"Please enter the opening hours for {panel.name}.",
                            "hideNumber":true,
                            "columns":[
                                {
                                    "name":"Opening Time",
                                    "cellType":"text",
                                    "inputType":"time"
                                },
                                {
                                    "name":"Closing Time",
                                    "cellType":"text",
                                    "inputType":"time"
                                }
                            ],
                            "cellType":"text",
                            "rows":[
                                {
                                    "value":"Monday",
                                    "visibleIf":"{businesses[0].OpenClosed1.Monday.Closed} = '[object Object]'"
                                },
                                {
                                    "value":"Tuesday",
                                    "visibleIf":"{businesses[0].OpenClosed1.Tuesday.Closed} = false"
                                },
                                {
                                    "value":"Wednesday",
                                    "visibleIf":"{businesses[0].OpenClosed1.Wednesday.Closed} = false"
                                },
                                {
                                    "value":"Thursday",
                                    "visibleIf":"{businesses[0].OpenClosed1.Thursday.Closed} = false"
                                },
                                {
                                    "value":"Friday",
                                    "visibleIf":"{businesses[0].OpenClosed1.Friday.Closed} = false"
                                },
                                {
                                    "value":"Saturday",
                                    "visibleIf":"{businesses[0].OpenClosed1.Saturday.Closed} = false"
                                },
                                {
                                    "value":"Sunday",
                                    "visibleIf":"{businesses[0].OpenClosed1.Sunday.Closed} = false"
                                }
                            ]
                        }
                    ],
                    "templateTitle":"Business name: {panel.BusinessName}",
                    "allowAddPanel":false,
                    "allowRemovePanel":false
                }
            ],
            "title":"xxx"
        }
    ]
}
4

1 回答 1

1

创建的每个面板都对应于 1 个业务实例 - 所以交换

"{businesses[0].SeparateOpenning} = true",

为了

{panel.SeparateOpenning} = true"

于 2020-10-16T17:00:39.477 回答