在“之前进行的智力测验?”问题上回答“是”时。复选框“哪个测试?”显示。这样就可以了。
但是,当选择选项“其他”时,我希望显示问题“其他测试”(这是一个文本字段)。这是行不通的。
浏览器还会向我显示以下消息:
“忽略依赖项中的oneOf,因为不存在一个完全有效的子模式”
我使用以下Json模式:
{
"header": "Personal Information",
"type": "object",
"required": [
"Intelligence test taken before?"
],
"properties": {
"Intelligence test taken before?": {
"type": "string",
"enum": [
"Yes",
"No"
]
}
},
"dependencies": {
"Intelligence test taken before?": {
"oneOf": [
{
"properties": {
"Intelligence test taken before?": {
"enum": [
"Yes"
]
},
"Which Test?": {
"type": "array",
"items": {
"type": "string",
"enum": [
"Test1",
"Other"
]
},
"uniqueItems": true
}
},
"required": [
"Which Test?"
]
}
]
},
"Which Test?": {
"oneOf": [
{
"properties": {
"Which Test?": {
"enum": [
"Other"
]
},
"Other Test": {
"type": "string"
}
},
"required": [
"Other Test"
]
}
]
}
}
}
和以下ui模式:
{
"Which Test?": {
"ui:widget": "checkboxes"
}
}
有什么线索,当从复选框中选择“其他”选项时,如何显示“其他测试”问题?
我不知道它是否相关,但是我正在使用json-schema-form包。 https://github.com/mozilla-services/react-jsonschema-form
靠近一点。现在,当选择“其他”时,将显示文本字段,但同时选择“ Test1”时,该文本字段将再次消失。
{
"header": "Personal Information",
"type": "object",
"required": [
"Intelligence test taken before?"
],
"properties": {
"Intelligence test taken before?": {
"type": "string",
"enum": [
"Yes",
"No"
]
}
},
"dependencies": {
"Intelligence test taken before?": {
"oneOf": [
{
"properties": {
"Intelligence test taken before?": {
"enum": [
"Yes"
]
},
"Which Test?": {
"type": "array",
"items": {
"type": "string",
"enum": [
"Test1",
"Other"
]
},
"uniqueItems": true
}
},
"required": [
"Which Test?"
]
}
]
},
"Which Test?": {
"oneOf": [
{
"properties": {
"Which Test?": {
"enum": [
"Other"
]
},
"Other Test": {
"type": "string"
}
},
"required": [
"Other Test"
]
}
]
}
}
}