My workaround...
1) Disable AJAX mode in the survey theme settings.
2) Insert a hidden (via Question CSS class) short-text question directly after the first list-radio question. For this example, we'll give the hidden question a code "
randomOrder".
3) Add this script to the source of the first list-radio question:
Code:
<script type="text/javascript" charset="utf-8">
$(document).on('ready pjax:scriptcomplete',function(){
//Identify the questions
var thisQuestion = $('#question{QID}');
var hiddenQuestion = $(thisQuestion).nextAll('.text-short:eq(0)');
// Create an array of answer codes
var answerCodes = [];
$('li.answer-item', thisQuestion).each(function(i) {
answerCodes.push($(this).attr('id').split('X{QID}')[1]);
});
// Load the hidden question
$('input:text', hiddenQuestion).val(answerCodes);
});
</script>
4) Add this script to the source of following list-radio questions:
Code:
<script type="text/javascript" charset="utf-8">
$(document).on('ready pjax:scriptcomplete',function(){
//Identify this question
var thisQuestion = $('#question{QID}');
var thisAnswerList = $('li.answer-item:eq(0)', thisQuestion).parent();
// Retrieve the answer codes from the "randomOrder" question
var answerCodes = '{randomOrder}'.split(',');
// Loop through the answer codes
$.each(answerCodes, function(i, val) {
// Move the answer item
$(thisAnswerList).append($('li.answer-item[id$="X{QID}'+val+'"]', thisQuestion));
});
});
</script>
Sample survey attached: