You will need to implement Jay's change if your questions are on different pages, but if you look in your browser's console you'll see that there is something else breaking. Whenever you use Sawtooth Script in your JavaScript, you should imagine replacing the Sawtooth Script with an example value that it might produce and decide whether or not that will become valid JS. If Q1 were a numeric question, then this line:
var answered = [% Q1 %];
would become this JavaScript like this after the Sawtooth Script completes:
var answered = 123;
That's valid JavaScript and everything is fine. But now imagine Q1 as a select question. This line:
var answered = [% Label(Q1) %];
will become the label of the selected, like this:
var answered = hello world;
This is not valid JavaScript, causing your issue. When we're sending text from Sawtooth Script to JS, we need to make the end result is a valid JavaScript string. For simple cases, this can be done by just wrapping the Sawtooth Script with apostrophes or quotation marks. So this line:
var answered = "[% Label(Q1) %]";
becomes the still valid JavaScript:
var answered = "hello world";