То, что вы описываете, будет работать, хотя я, конечно, не знаю ни одного плагина, который бы помог с этим. Однако, если вы выберете такой подход, вы должны быть абсолютно уверены, что никогда не будет более сложной логики, чем «q1 yes, 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 для них, который запускает проверку, должен ли отображаться вопрос или нет).
Конечно, вы, вероятно, захотите просто создать класс «вопрос» вместо использования массивов, и вам, вероятно, понадобится объект массива вместо отдельных переменных для каждого вопроса, но это был всего лишь быстрый пример. В любом случае, подобный подход даст вам гораздо больше возможностей и гибкости в будущем ... но изначально он также будет более трудоемким, чем ваша классовая идея.