你所描述的将会起作用,尽管我当然不知道任何有助于它的插件。但是,如果你确实采取了这种方法,那么你应该绝对确信,不会有比“q1是,q2 no”更复杂的逻辑。例如,如果您需要“q1是,q2是或q4否”作为问题的展示条件,那么您的方案将无法处理它,并且您将结束黑客攻击或重新编写整个系统。
如果你确实认为你以后可能需要更复杂的逻辑,我会建议用纯JS来实现。例如:
function isYes(i) {
return $("#question" + i).is(":checked");
}
var question1 = ["Is red your favorite color?", function() {
return isYes(1);
}];
var question2 = ["Are dogs your favorite pet?", function() {
return isYes(1) && (isNo(4) || isYes(7);
}];
类似的东西(加上逻辑来呈现的问题,并为他们的onChange处理触发的quesiton是否应显示或不检查)。
当然,你可能只想创建的,而不是使用数组一个“问题”类,你可能会想一个数组对象,而不是为每一个问题不同的变量,但是这只是一个简单的例子。无论如何,这样的方法将给你未来更多的力量和灵活性......但最初的工作比基于班级的想法还要多。