Я пытаюсь проверить введенные данные на основе предыдущего выбора с помощью SurveyJS. Ввод в последнем разделе «Продолжительность» должен зависеть от предыдущего выбора «Дни», «Месяцы» или «Годы».
Если я оставлю при проверке только условие, оно работает нормально, но когда я добавляю более одного условия, оно пытается проверить все три независимо от условия выражения.
Ниже JSON можно использовать в Survey JS codepen или codeandbox:
{
"pages": [
{
"name": "page1",
"elements": [
{
"type": "radiogroup",
"name": "Gym",
"title": "Do you go to GYM",
"isRequired": true,
"choices": [ "Yes", "No" ]
},
{
"type": "radiogroup",
"name": "GymDur",
"visibleIf": "{Gym} = 'Yes'",
"title": "How long have you been going to GYM",
"resetValueIf": "{Gym} = 'No'",
"isRequired": true,
"choices": [ "Days", "Months", "Years" ]
},
{
"name": "GymDura",
"type": "text",
"title": "Enter Duration",
"inputType": "number",
validators: [
{
type: "regex",
regex: "^(?:[0-9]|[1-2][0-9])$",
text: "Value should be less than 29.99",
expression: "{GymDur} = 'Days'",
},
{
type: "regex",
regex: "^(?:[0-9]|1[01])$",
text: "Value should be less than 11.99",
expression: "{GymDur} ='Months'",
},
{
type: "regex",
regex: "^(?:d{1,2})(?:.d{1,2})?$",
text: "Value should be less than 99.99",
expression: "{GymDur} ='Years'",
},
],
},
],
}
],
}
Можно ли каким-либо образом заставить валидаторы работать только на основе входных данных одного выражения (дни, месяцы и годы), и если я изменю значение, если входные данные (дни на месяцы или год), данные и ошибка проверки в поле Enter Duration должны автоматически сброситься. Ниже приведен тот же скриншот.
Я пытаюсь проверить введенные данные на основе предыдущего выбора с помощью SurveyJS. Ввод в последнем разделе «Продолжительность» должен зависеть от предыдущего выбора «Дни», «Месяцы» или «Годы». Если я оставлю при проверке только условие, оно работает нормально, но когда я добавляю более одного условия, оно пытается проверить все три независимо от условия выражения. Ниже JSON можно использовать в Survey JS codepen или codeandbox: [code] { "pages": [ { "name": "page1", "elements": [ { "type": "radiogroup", "name": "Gym", "title": "Do you go to GYM", "isRequired": true, "choices": [ "Yes", "No" ] }, { "type": "radiogroup", "name": "GymDur", "visibleIf": "{Gym} = 'Yes'", "title": "How long have you been going to GYM", "resetValueIf": "{Gym} = 'No'", "isRequired": true, "choices": [ "Days", "Months", "Years" ] }, { "name": "GymDura", "type": "text", "title": "Enter Duration", "inputType": "number", validators: [ { type: "regex", regex: "^(?:[0-9]|[1-2][0-9])$", text: "Value should be less than 29.99", expression: "{GymDur} = 'Days'", }, { type: "regex", regex: "^(?:[0-9]|1[01])$", text: "Value should be less than 11.99", expression: "{GymDur} ='Months'", }, { type: "regex", regex: "^(?:d{1,2})(?:.d{1,2})?$", text: "Value should be less than 99.99", expression: "{GymDur} ='Years'", }, ], }, ], } ], } [/code] Можно ли каким-либо образом заставить валидаторы работать только на основе входных данных одного выражения (дни, месяцы и годы), и если я изменю значение, если входные данные (дни на месяцы или год), данные и ошибка проверки в поле Enter Duration должны автоматически сброситься. Ниже приведен тот же скриншот. [img]https://i.sstatic.net/2f7zwuNM.png[/img]