目前,如果问题有验证器或需要验证器,则尽管过了时间限制,页面也不会更改。常见的情况是用户应该能够更快地结束页面,但前提是他们做得正确。让我们想象一下课堂测试。测试中的所有问题都是必需的,因此学生不会错误地跳过问题。但如果达到了时间限制,他们应该就无法完成剩下的问题了。现在,计时器停留在 0:00,验证器显示错误。
我的解决方法是删除所有验证器,并在达到时间限制时将
isRequired
设置为 false,但我认为我在这里遗漏了一些东西。
// for a single question
survey.onTimerTick.add((sender, options) => {
if (
survey.currentPage.name === "myPage" &&
survey.currentPage.timeSpent >= survey.currentPage.maxTimeToFinish
) {
const Q = survey.getQuestionByName("myQuestion");
Q.clearErrors();
Q.setPropertyValue("validators", []);
Q.setPropertyValue("isRequired", false);
}
});
我尝试通过设置
currentPage
属性手动更改页面,但结果导致页面更改两次。
您可以设置
survey.validationAllowSwitchPages = true;
选项