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知识。
答案 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的东西来进行日期计算。