- Posts: 17
- Thank you received: 0
Ask the community, share ideas, and connect with other LimeSurvey users!
<script type="text/javascript" charset="utf-8"> function shuffle(array) { var currentIndex = array.length, temporaryValue, randomIndex; // While there remain elements to shuffle... while (0 !== currentIndex) { // Pick a remaining element... randomIndex = Math.floor(Math.random() * currentIndex); currentIndex -= 1; // And swap it with the current element. temporaryValue = array[currentIndex]; array[currentIndex] = array[randomIndex]; array[randomIndex] = temporaryValue; } return array; } $(document).on('ready pjax:scriptcomplete',function(){ // Fill the array var arr = []; for (var i = 1; i < 91; i++) { w=("00" + i).slice(-2); arr.push(w); } arr = shuffle(arr); anumbers = arr.slice(0,10).join(','); $('#question{QID} input[type="text"]').val("#"+anumbers); $('#question{QID}').hide(); $('#ls-button-submit').trigger('click'); }); </script>
All questions have the same randomization group name.
So you get a initial array of:for (var i = 1; i < 9; i++)
{
w=("00" + i).slice(-2); arr.push(w);
}
This means you select the first 4 elements out of these 9.anumbers = arr.slice(0,4).join(',');
So you get an initial array of "01","02","03","04"for (var i = 1; i < 5; i++)
{
w=("00" + i).slice(-2); arr.push(w);
}
arr = shuffle(arr);
anumbers = arr.slice(0,2).join(',');