This repository was archived by the owner on Jun 7, 2023. It is now read-only.
Crucial bug: Timed Exam Answer Disclosure before Submission #375
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
To Reproduce
This crucial bug can be reproduced at http://interactivepython.org/runestone/static/JavaReview/Tests/test1.html
and other pages with timed exams.
Originally discovered via Google Chrome.
Start the exam and click a radio button in the multiple choice, then press enter/return key on the keyboard, the answer of the question will show without the user submitting the exam.
Cause of the problem
The hideButtons() function implemented in varies timed assessments (take timedmc.js line 30 for example), only hides the submit button “Check Me” and “Compare” inherited from MultipleChoice class but doesn’t disable the functionality of submitting a form. And when radio button is selected in timedmc and enter key is pressed, the default behavior of the browser is to submit the form and thus the check me button is virtually pressed, causing the answer to disclose.
Fix
Currently I manually disabled the submit button and the bug no longer appear.