我正在尝试使用自定义JS在Qualtrics中进行调查,以便问题1有一个下拉列表,其中包含多个选项,最后一个是'其他'我试图使其成为问题1'其他人选择的问题2将隐藏,不再显示。我已经预览了调查,得到了div元素和下拉列表的ID:
下拉ID = QR~QID12 Div我想隐藏ID = QID119
我一直在尝试使用下面的代码,但尚未使用
Qualtrics.SurveyEngine.addOnload(function ()
{
this.questionclick = function(event,element){
if (this.getTextValue() == 'Others'){
$('QID119').show();
alert('show');
} else if (this.getTextValue() != 'Others'&&this.getTextValue() != '') {
$('QID119').hide();
alert('hide');
}
}
});
我尝试过this.getTextValue()以及$(“QR~QID12”)。getValue()但似乎都没有隐藏它下面的div。
答案 0 :(得分:0)
一些事情:(1)问题不在于选择,所以你的代码正在查看错误的元素(this.questionclick); (2)问题不是(this.getTextValue)的选择,所以你的代码再次查看错误的元素; (3)单击处理程序不是选择的好选择。此外,您的代码执行与您编写的内容相反的显示/隐藏。最后,最好避免使用固定的QID代码。
尝试以下方法。我猜你想要为show / hide写的东西,但如果没有,只需改变条件:
Qualtrics.SurveyEngine.addOnload(function ()
{
var nq = $(this.questionId).next('.QuestionOuter'); //next question
var select = $(this.questionId).down('select'); //select element
hideShow(select); //initialize to support prev button
select.on('change', function() {
hideShow(this);
});
function hideShow(selEl) {
var selText = selEl.options[selEl.selectedIndex].text;
if (selText == 'Others' || selText == '') nq.hide();
else nq.show();
selEl.blur();
}
});