你所描述的將會起作用,儘管我當然不知道任何有助於它的插件。但是,如果你確實採取了這種方法,那麼你應該絕對確信,不會有比「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是否應顯示或不檢查)。
當然,你可能只想創建的,而不是使用數組一個「問題」類,你可能會想一個數組對象,而不是爲每一個問題不同的變量,但是這只是一個簡單的例子。無論如何,這樣的方法將給你未來更多的力量和靈活性......但最初的工作比基於班級的想法還要多。