1

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

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

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

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

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

知道这是否可行吗?

4

2 回答 2

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 类的位置。将显示设置为“内联”可防止 $ 出现在文本输入上方或 % 出现在文本输入下方。

于 2015-01-28T03:42:24.637 回答
1

上面的代码适用于矩阵表,文本输入格式。您还可以稍微修改该代码以在 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";
        }   
    }   
});
于 2015-04-24T13:48:22.997 回答