Matrix headers for extremely long items | XM Community
Solved

Matrix headers for extremely long items

  • 5 November 2018
  • 9 replies
  • 619 views

Hello, I have an extremely long Matrix item, and my client insist on it being on one screen.

It's so long that the repeat header option (which only displays 3 repetitions - top, middle, bottom) isn't enough to always have the item options on the screen. To fix this, is it possible to either:
* Freeze the column header options at the top of the screen while scrolling (preferred), or
* Add extra repeated headers?

Thanks for any help! -Matt
icon

Best answer by Anonymous 5 November 2018, 20:48

View original

9 replies

Userlevel 7
Badge +27
Repeat headers "All" repeats the headers on every row. You can then display every nth header by writing some JavaScript to hide extra headers.
Hello @MattyD ,

Check the 'All' option in the Repeat headers and then paste the below code in the js(onReady) of the matrix question.

var j=jQuery(".ChoiceRow:last").index()/2;
console.log(j);
var i;
jQuery('tbody tr.RepeatHeader').eq(0).hide();
for( i=1;i<=j;i++){
if(i % 5 != 0 ){jQuery('tbody tr.RepeatHeader').eq(i).hide();}
}

This will repeat headers after 5 statements. To repeat headers after n number of statement then replace 5 with the n number.
Where do you paste the script?
I paste the script here in the question as shown below. But it's not working for me. Thoughts?


Qualtrics.SurveyEngine.addOnload(function()
{
var j=jQuery(".ChoiceRow:last").index()/2;
console.log(j);
var i;
jQuery('tbody tr.RepeatHeader').eq(0).hide();
for( i=1;i<=j;i++){
if(i % 5 != 0 ){jQuery('tbody tr.RepeatHeader').eq(i).hide();}
}

});

Qualtrics.SurveyEngine.addOnReady(function()
{
/*Place your JavaScript here to run when the page is fully displayed*/

});

Qualtrics.SurveyEngine.addOnUnload(function()
{
/*Place your JavaScript here to run when the page is unloaded*/

});
> @BethW said:
> I paste the script here in the question as shown below. But it's not working for me. Thoughts?

I hope you have followed this instruction - Check the 'All' option in the Repeat headers
I did.
This worked when my response options ranged from "strongly disagree-strongly agree" - but, it doesn't work when I use a frequency scale. Any ideas on how to fix this problem? Many thanks.
To clarify -- I want a "repeat header" for every 5th item for two blocks of 65 items each using a matrix structure (Note: The two blocks are identical, such that they both have Likert scales, but the only difference is that Block 1 uses a "strongly disagree-strongly agree" scale and the other uses a "very unclear-very clear" scale). I pasted the script listed above by BethW, and it worked for Block 1, but not Block 2. How can I fix this problem?
I'm currently having a similar issue to j_b. Except when I past my code, it only does the repeating of the headers for n rows twice and then reverts back to every row having a header.

How do I make it so it repeats headers for n rows throughout the WHOLE matrix?

Leave a Reply