Как скрыть следующую кнопку до определенного времени суток в опросе Qualtrics - PullRequest
0 голосов
/ 07 февраля 2020

Я пытаюсь скрыть следующую кнопку в опросе Qualtrics до указанного c дня / времени (пороговое значение 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();
    });
});

, но не смог заставить его работать. Есть идеи?

Спасибо !!

1 Ответ

0 голосов
/ 07 февраля 2020

Если вы надеетесь загрузить страницу, оставьте ее на месте и подождите, пока не покажется ваша кнопка, тогда она не будет работать, поскольку код загрузки загружается только один раз. Вы можете рассчитать, сколько в мс времени у вас есть, чтобы показать кнопку при загрузке страницы, а затем установить тайм-аут для запуска кода, отображающего кнопку после того, как прошло это количество мс.

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);
}
...