qualtrics javascript:日期触发的逻辑

时间:2015-08-06 14:14:47

标签: javascript date qualtrics

Qualtrics不提供基于日期的逻辑,我想创建一个由用户输入的日期触发的警报。具体来说,如果用户输入的日期在30天之内,我希望显示一个页内文本(不是警告对话框)。

我拼凑了一个简短的脚本,让我在那里(计算和比较日期),但我是一个新手,需要一些指针。

var today = new Date();
var m = today.getMonth();
var d = today.getDate();
var y = today.getFullYear();

var date = new Date(y,m,d)+30;

var mydate="${q://QID1/ChoiceTextEntryValue}";
var mydate = parseInt(mydate);

console.log(date);
console.log(mydate)

if(date>mydate)
{
    alert(mydate + " is greater than " + date);
}
else
{
    alert(mydate + " is smaller than " + date)
}

此脚本在页面加载时运行,但我不希望它在用户在文本字段中输入日期之前运行。需要在脚本中添加什么来告诉它等待用户?在我的脚本中,素材形式的最佳位置在哪里?

如果我希望在我的日期计算(而不是警告对话框)的基础上显示表单文本,我应该将嵌入数据写入表单并使用限定逻辑条件来显示表单文本吗?

提前感谢我教给我什么是基本的javascript知识。

1 个答案:

答案 0 :(得分:1)

不是一个完整的解决方案,而是回答你的问题:

1)您想要一个在您对日期输入字段失去焦点时执行的功能。类似于以下内容,其中dateElement是输入字段:

dateElement.observe("blur", function(event) {
    // function code goes here
}); 

2)点击"添加Javascript"将您的javascript添加到问题中从问题左侧的下拉菜单中。

3)您可以将条件显示文字放在问题文本中的<span>标记内,并在您的javascript中打开或关闭显示。您可以使用innerHTML更新范围内的文本。 span将是这样的:

<span id="displayText" style="display:none"></span>

Javascript就像:

$('displayText').innerHTML = mydate + " is smaller than " + date;
$('displayText').show();

你没有问,但你应该使用类似moment.js的东西来进行日期计算。