【发布时间】:2017-10-03 18:17:19
【问题描述】:
我最近继承了一个项目,其中一些表单使用 CoffeeScript 来动态获取和发布数据。 CoffeeScript 将表格按不同的问题进行划分。我试图处理的一个问题是有一个下拉列表,其中包含通过 API 调用动态获取的选项。
CoffeeScript:
new QS.JBChoice
name: 'PrimaryJob'
questionText: 'What is your primary job (required)?'
maximumSelectionSize: 1
choiceID: 'Job_Choice'
skipLogic: (context) -> JobSkip(context)
validateLogic: (validator, context) -> JobValidate(validator, context, 'Primary Job Required')
questionID: 16
呈现表单时,会出现一个下拉列表,其中包含动态获取的数据。现在我想从此下拉列表中获取数据并对其进行过滤,以便仅显示特定选项。
应注意,作业类型的每个选项都有特定的整数值,这些值在进行 API 调用时会被获取。如果选择了特定值,我实际上有代码可以防止出现此问题。
用 CoffeeScript 跳过问题:
skipLogic: (context) -> JobSkipLogic(context)
JobSkipLogic = (context) ->
if !context.answers.Jobs?
return true
jobs = choiceAsideFrom(context.answers.Jobs, [100, 105, 110, 115])
not jobs
choiceAsideFrom = (answer, choices) ->
count = numOverlaps(answer, choices)
answerCount = answer.split(',').length
count != -1 && answerCount > 0 && count < answerCount
如您所见,Jobs 由上面自定义 choiceAsideFrom 函数中传递的代码标识。
我想知道是否可以使用类似的方法通过这些标识符过滤这些作业类型。
任何帮助将不胜感激!
【问题讨论】:
标签: jquery coffeescript