问题陈述:
我有一个表单,我需要状态应用它,因为有多种可能的场景,而不是一个非常定制,而不是非常干净的JavaScript类,如果点击它,然后单击,但不是这个,等等等等等等。我想应用状态和转换来覆盖场景。
我想使用jakesgordon/javascript-state-machine来建模状态及其转换。我正在思考......
{
initial: 'none',
events: [
{ name: 'completing', from: ['none', 'completing', 'complete', 'blocked'], to: 'completing' },
{ name: 'completed', from: ['blocked', 'completing'], to: 'completed' },
{ name: 'continue', from: ['blocked', 'completed'], to: 'continue' },
{ name: 'blocked', from: ['none', 'completing', 'complete'], to: 'blocked' }
]
}
我希望得到关于最佳状态和转换(以及可能何时在每种情况下转换它们)的一些输入callbacks。
表格
The form UX pin can be found here.(截图太长了。)
规则及其方案
状态complete
遵循以下规则:
导航"继续"第2页的按钮应该变为灰色且不可用,直到满足以下两个方案中的任何一个
情景1
1)。我正在完成这个筛选工具...... - 用户选择 - 在别人的支持下自己或我自己
和
2)。您对其他人如何对待您有任何疑虑吗? - 用户选择 - 否
和
3)。你觉得很难与别人沟通吗? - 用户选择 - 否
和
4)。您是否觉得难以理解或保留信息? - 用户选择 - 否
和
5)。您是否难以做出决策或了解其影响? - 用户选择 - 否
场景2
1)。我正在完成这个筛选工具...... - 用户选择 - 代表其他人
和
2)。所有问题都已完成
状态blocked
遵循以下规则:第1页上存在条件行为,这取决于您对其他人如何对待您有任何疑虑而选择了哪个选项?
场景1
我正在完成这个筛选工具...... - 用户选择 - 我自己
和
您对其他人如何对待您有任何疑虑吗? - 用户选择 - 是
1)。将显示此部分的信息警报 2)。通讯&部分理解是灰色的,用户无法使用
您对其他人如何对待您有任何疑虑吗? - 用户选择 - 否
1)。不显示此部分的信息提示
2)。通讯&部分理解未被解读并可供用户使用
场景2
我正在完成这个筛选工具...... - 用户选择 - 我自己在别人的支持下或代表其他人
和
您对其他人如何对待您有任何疑虑吗? - 用户选择 - 是
1)。将显示此部分的信息警报 2)。通讯&部分理解未被解读并可供用户使用
用户选择 - 否
1)。不显示此部分的信息警报 2)。通讯&部分理解未被解读并可供用户使用
当用户填写表单时,他们处于completing
状态。任何人都可以建议设置以及何时更改。