如何在选择其他时隐藏当前下拉列表下方的div - qualtrics

时间:2016-11-17 21:32:51

标签: javascript jquery html prototypejs qualtrics

我正在尝试使用自定义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。

1 个答案:

答案 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();
    }

});