2016-12-12 2 views
1

Qualtrics의 객관식 매트릭스 테이블 질문에서 개별 행에 대한 표시 논리를 설정하려면 Javascript를 사용하고 싶습니다. 나는 항상 일반적인 클릭 스루 (click-through) 방식으로이 작업을 해왔지만이 작업을 수행하는 데 100 개 이상의 행을 사용하는 경우가 많으며 프로그래밍 방식으로이 작업을 수행하는 데 많은 시간을 절약 할 수 있습니다.Qualtrics 매트릭스 테이블 표시 로직에 Javascript 사용

내가 삽입에 다음을 시도했습니다 I가 표시 로직을 추가하기 위해 노력하고있어 질문은 "자바 스크립트 추가"

Qualtrics.SurveyEngine.addOnload(function() 
{ 
    /*Set display logic*/ 
    if ('${q://QID2/SelectedAnswerRecode/1}' < 3) {'${q://QID3/ChoiceDescription/1}'.style.visibility='hidden';} 
    if ('${q://QID2/SelectedAnswerRecode/2}' < 3) {'${q://QID3/ChoiceDescription/2}'.style.visibility='hidden';} 
}); 

생각은 적어도 3의 값이 답변 QID2의 행 1 (단일 선택 행렬 테이블)은 행렬 테이블 QID3의 행 1이 표시되는 데 필요합니다. 그대로이며,이 응답하지 나타납니다 - QID3에서 행이 여전히 표시됩니다 QID2의 해당 행에서 선택한 값이 나는 또한 성공하지 style.display='none' 대신 style.visibility='hidden'을 시도했습니다 < 3.

을 경우에도. Javascript에 대한 나의 경험은 제한되어 있으므로 일종의 구문 문제라고 생각됩니다.

답변

1

미리보기 모드에서 측량과 함께 브라우저에서 요소 검사를 사용하여 표시 논리가 발생할 행렬의 행 머리글에 대한 요소 ID를 찾습니다. .up().hide()은 행의 나머지 부분도 가져옵니다. ID 이름의 '~'때문에 ID 주위의 인용 부호가 필요합니다. 그렇지 않으면 저장하려고 할 때 "예기치 않은 토큰 ~"오류가 발생합니다. 저를 올바른 방향으로 가리켜 주신 T. Gibbons에게 감사드립니다.

Qualtrics.SurveyEngine.addOnload(function() 
{ 
    /*Set display logic*/ 
    if ('${q://QID2/SelectedAnswerRecode/1}' < 3) {$('header~QID3~1').up().hide();} 
    if ('${q://QID2/SelectedAnswerRecode/2}' < 3) {$('header~QID3~2').up().hide();} 
    if ('${q://QID2/SelectedAnswerRecode/3}' < 3) {$('header~QID3~3').up().hide();} 
    if ('${q://QID2/SelectedAnswerRecode/4}' < 3) {$('header~QID3~4').up().hide();} 
    if ('${q://QID2/SelectedAnswerRecode/5}' < 3) {$('header~QID3~5').up().hide();} 
}); 

필요에 따라 복사/붙여 넣기/편집하십시오.

+0

Qualtrics는 prototype을로드하여 사용하므로 Qualtrics에서 항상 사용할 수 있습니다. 아무 것도 할 필요가 없습니다. –

+0

개별 셀 및 라디오 입력 대신 전체 행을 숨기지 않겠습니까? 시도해보십시오 : $ ('header ~ QID3 ~ 1'). up(). 숨기기(); 모든 display = none 행 대신에. –

+0

@ T. 기븐 스 예 완벽하게 작동했습니다. 이를 반영하기 위해 답을 수정하겠습니다. – bcarothers

2

문제는 실제로 구문과 관련이 있습니다. html 요소를 숨기고 '$ {q : // QID3/ChoiceDescription/1}'은 html 요소가 아닙니다 (레이블의 innerHTML입니다). html 요소 인 경우에도 구문이 잘못되었습니다 (따옴표로 묶이지는 않습니다).

이 가능한 경우 prototypejs를 사용하는 것이 가장 좋은 방법입니다, 그래서 요소가 '요소'라는 이름 있다면 명령은 다음과 같습니다, 당신은 식별하여 그들을 찾을 필요가

element.hide(); 

숨길 올바른 요소를 찾으려면 요소 ID 또는 요소 태그, 클래스 및 속성의 일부 조합. 선택 설명을 사용하여 수행 할 수 있지만 코드가 훨씬 많이 필요하고 효율성이 떨어집니다.