Qualtrics:在Matrix表格中的文本框之前/之后添加不同的字符

时间:2015-01-22 20:10:05

标签: javascript textbox qualtrics

在矩阵问题的文本框之前/之后,尝试找到一种方法来显示不同的字符。目前,我在表格中有一列要求一美元金额,第二列要求一个百分比。我真的很想避免将它们分成单独的问题,因为它们是相关的。

我在Qualtrics'上找到了以下代码网站,但它为每个文本框添加一个美元符号,这是我不想要的。

var inputs = $(this.getQuestionContainer()).select('input[type="text"]');

for (var i = 0; i < inputs.length; i++) {
  var input = inputs[i];

  $(input).insert({before: '$'});
}

知道这是否可行?

2 个答案:

答案 0 :(得分:1)

假设美元是第一个答案列(c4),百分数是第二个答案列(c5)(行标签和垂直分隔符是c1-c3),请将代码修改为:

Qualtrics.SurveyEngine.addOnload(function()
{
    function hasClass(element, cls) {
        return (' ' + element.className + ' ').indexOf(' ' + cls + ' ') > -1;
    }

    var inputs = $(this.getQuestionContainer()).select('input[type="text"]');

    for (var i = 0; i < inputs.length; i++) {
        var input = inputs[i];
        if(hasClass(input.up(), 'c4')) {
            $(input).insert({before: '$'});
            input.style.display = "inline";
        }   
        else if(hasClass(input.up(), 'c5')) {
            $(input).insert({after: '%'});
            input.style.display = "inline";
        }   
    }   
});

input.up()将您带到<td>,您可以在其中检查类c4或c5。将显示设置为&#34;内联&#34;防止$出现在上面或 %出现在文本输入下方。

答案 1 :(得分:0)

上面的代码适用于矩阵表,文本输入格式。您还可以稍微修改该代码,以便在Qualtrics的常规“文本输入”问题格式之前或之后添加字符。对于一般文本输入问题,Qualtrics不会以相同的方式添加增量列类,它仅使用“ControlContainer”作为类。以下代码在文本字段后面插入'%'符号。您可以使用标签所需的任何字符替换'%'。

Qualtrics.SurveyEngine.addOnload(function()
{
    function hasClass(element, cls) {
        return (' ' + element.className + ' ').indexOf(' ' + cls + ' ') > -1;
    }

    var inputs = $(this.getQuestionContainer()).select('input[type="text"]');

    for (var i = 0; i < inputs.length; i++) {
        var input = inputs[i];
        if(hasClass(input.up(), 'ControlContainer')) {
            $(input).insert({after: '%'});
            input.style.display = "inline";
        }   
    }   
});