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

Qualtrics: Adding Different Characters before/after Text Boxes in Matrix Table

本文关键字:之后 添加 字符 文本 Qualtrics      更新时间:2023-09-26

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

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

var inputs = $(this.getQuestionContainer()).select('input[type="text"]');
for (var i = 0; i < inputs.length; i++) {
  var input = inputs[i];
  $(input).insert({before: '$'});
}

知道这是否可行吗?

假设美元是第一个答案列 (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() 将您带到可以检查类 c4 或 c5 的<td>。将显示设置为"内联"可防止 $ 出现在上方或%,显示在文本输入下方。

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