2015-01-22 6 views
0

행렬 질문의 텍스트 상자 앞뒤에 다른 문자가있는 방법을 찾으려고합니다. 현재 테이블에 하나의 열이 있는데 달러 금액을 요청하고 두 번째 열은 백분율을 묻습니다. 나는 그것들이 관련되어 있기 때문에 그들을 분리 된 질문들로 분리하는 것을 피하려고 정말로 원한다.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: '$'}); 
} 

실현 가능성이 있다면 알려주세요.

답변

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 클래스를 확인할 수 있습니다. 디스플레이를 "인라인"으로 설정하면 $가 위에 표시되지 않거나 %가 텍스트 입력 아래에 표시되지 않습니다.

0

위의 코드는 텍스트 입력 형식 인 Matrix Table에서 잘 작동합니다. 또한 해당 코드를 약간 수정하여 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"; 
     } 
    } 
});