【问题标题】:How to hide the next button until a certain time of day in Qualtrics survey如何在 Qualtrics 调查中隐藏下一个按钮直到一天中的某个时间
【发布时间】:2020-02-07 20:20:38
【问题描述】:

我正在尝试隐藏 Qualtrics 调查中的下一个按钮,直到特定日期/时间(我的代码中的 var 阈值)。我试过了

Qualtrics.SurveyEngine.addOnload(function()
{
    var threshold = '2020-02-07T20:00:00.000Z';
    var today = new Date();
    if(threshold < today) $('NextButton').hide();
    else $('NextButton').show();

});

Qualtrics.SurveyEngine.addOnload(function() {   
    function hideEl(element) {
        element.hide();
    }   
    var nb = $('NextButton');
    var threshold = '2020-02-07 08:12';
    var today = new Date();
    var date = today.getFullYear()+'-'+(today.getMonth()+1)+'-'+today.getDate();
    var time = today.getHours() + ":" + today.getMinutes();
    var dateTime = date+' '+time;
        hideEl.defer(nb);
    if(var dateTime < threshold ) nb.hide();
    else nb.show();

    });

Qualtrics.SurveyEngine.addOnload(function() {
    function hideEl(element) {
        element.hide();
    }
    var threshold = '2020-02-07T20:00:00.000Z';
    var today = new Date();
    var nb = $('NextButton');
    hideEl.defer(nb);
 $(this.questionId).on('display', function(event) {
        if(today<threshold) nb.hide();
        else nb.show();
    });
});

但无法让它工作。有什么想法吗?

谢谢!!

【问题讨论】:

  • 我猜$('.NextButton')会做到吗?
  • A. Meshu 的评论能解决您的问题吗?这只是没有正确的选择器来获取按钮元素的引用的问题吗?
  • 感谢您的帮助。添加 .没有做到这一点:/我认为它与日期格式有关,所以我现在正在玩这个逻辑。

标签: javascript qualtrics


【解决方案1】:

如果您希望加载页面,请将其留在原处并等待您的按钮显示,那么它将无法工作,因为您的 onload 代码只运行一次。您可以计算页面加载时显示按钮的时间有多远(以毫秒为单位),然后设置超时以在该毫秒数过去后运行显示按钮的代码。

function onLoadCb() {
  // When do you want your button to be revealed:
  const timeToShow = new Date('<whenver your date is>);
  // Convert that to milliseconds:
  const msToShow = Number(timeToShow);
  // Get the milliseconds right now:
  const now = Date.now();
  // Do math!
  const msToWait = msToShow - now;

  // Set a timeout that will wait the number of ms that we calculated:
  setTimeout(() => {
    // That amount of time has passed, show the button!
    $('.NextButton').show();
  }, msToWait);
}

【讨论】:

  • 如果你是对的,这个问题应该是关闭的,因为错字(OP 没有在选择器类名上添加点)你不觉得吗?
  • 这取决于 OP 的意图......如果他们只是没有让按钮选择器正确,那么是的。如果他们试图弄清楚如何在他们的项目上执行异步、基于时间的行为并且选择器不是问题,那么我认为这是一个合理的解决方案:D
  • 没有看到 HTML 或使用 Qualtrics 调查,似乎他的所有尝试都因选择器而失败。如果他会 console.log 它,他会看到 null 甚至是错误...
猜你喜欢
  • 1970-01-01
  • 2021-10-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-23
  • 1970-01-01
  • 2012-08-23
相关资源
最近更新 更多