Welcome, Guest
Username: Password: Remember me
  • Page:
  • 1
  • 2

TOPIC: Answers random order - partial randomization & keeping distinct answers fixed

Answers random order - partial randomization & keeping distinct answers fixed 10 months 2 weeks ago #99873

  • t6nnp6nn
  • t6nnp6nn's Avatar
  • OFFLINE
  • Fresh Lemon
  • Posts: 12
  • Karma: 0
I would need to randomize part of the answers and keep some answers at a fixed position.

A typical example - a simple radio question that needs most of the answers randomized, but would need to have a "do not know" fixed at the bottom.

Any ideas how to do that?

I am currently considering renaming "no answer" to "don't know" in the translation.
Alternatively I could have some script rewriting the answers sortorder value on each pageload. Probably some security issues here going directly to edit databases.
Any ways to reorder distinct answers by javascript on display?

I am using multiple versions (eg. 1.92+ and the 2.00)
The administrator has disabled public write access.

Answers random order - partial randomization & keeping distinct answers fixed 10 months 2 weeks ago #99877

  • tpartner
  • tpartner's Avatar
  • OFFLINE
  • LimeSurvey Team
  • Posts: 4071
  • Thank you received: 748
  • Karma: 341
Cheers,
Tony Partner

Solutions, code and workarounds presented in these forums are given without any warranty, implied or otherwise.

LimeSurvey is open-source and run entirely by volunteers so please consider donating to support the project.
The administrator has disabled public write access.

Answers random order - partial randomization & keeping distinct answers fixed 10 months 2 weeks ago #99883

  • t6nnp6nn
  • t6nnp6nn's Avatar
  • OFFLINE
  • Fresh Lemon
  • Posts: 12
  • Karma: 0
exactly what I was looking for.
excellent, thanks!

I did google for some time to find that but without luck. Thanks again.
The administrator has disabled public write access.

Answers random order - partial randomization & keeping distinct answers fixed 10 months 2 weeks ago #99887

  • t6nnp6nn
  • t6nnp6nn's Avatar
  • OFFLINE
  • Fresh Lemon
  • Posts: 12
  • Karma: 0
have some problems implementing.

I got the "Partially Randomized Answers - Multiple Options & List (radio) questions" working
didn't work on my custom old template, but worked on default

but I can not get the "Partially Randomized Answers - Multiple Options & List (radio) questions - ENHANCED" version working (the one with multiple fixed items).

working with 1.92 build 10859.

Could anybody show a working set-up for the enhanced version??
The administrator has disabled public write access.

Answers random order - partial randomization & keeping distinct answers fixed 10 months 2 weeks ago #99908

  • t6nnp6nn
  • t6nnp6nn's Avatar
  • OFFLINE
  • Fresh Lemon
  • Posts: 12
  • Karma: 0
found the problem

with the enhanced versiosn you should not set the random_order attribute to 1

The randomization is done with javascript. I set the random_order to 0 and it works in all versions i have now.

so as far as I understand there is a misleading manual - this should not be done with the enhanced version:

"Set the random_order question attribute to 1."
The administrator has disabled public write access.

Answers random order - partial randomization & keeping distinct answers fixed 6 months 2 weeks ago #103531

  • LloydW
  • LloydW's Avatar
  • OFFLINE
  • Gold Donor
  • Posts: 32
  • Thank you received: 1
  • Karma: 0
Similar sort of question but for an array.

I want to randomise all the subquestions, but I want to hold the last one (which is different from the rest) at the end of the list (but not an exclusive answer like 'none of the above').

Haven't been able to get most of the solutions I've found on-line to work. The question example is attached & using Limesurvey 2.05.

Regards, Lloyd.
Attachments:
The administrator has disabled public write access.

Answers random order - partial randomization & keeping distinct answers fixed 6 months 2 weeks ago #103551

  • tpartner
  • tpartner's Avatar
  • OFFLINE
  • LimeSurvey Team
  • Posts: 4071
  • Thank you received: 748
  • Karma: 341
Lloyd, since your sub-question codes all start with an alpha character (as they should) and are sequential, we can detect the highest code (alphabetically) and move that sub-question to the end.

Add the following to the array question source:

<script type="text/javascript" charset="utf-8">	
 
	$(document).ready(function() {
 
		// Identify this question ID
		var qID = {QID};
 
		// Build an array of subquestion codes
		var sqCodeArr = new Array();
		$('#question'+qID+' table.question tbody tr').each(function(i) {
 
			var sqCode = $(this).attr('id').split('X'+qID+'')[1];
			sqCodeArr.push(sqCode);
		});
 
		// Find the highest code (alphabetically) 
		sqCodeArr.sort(); 
		var highCode = sqCodeArr[sqCodeArr.length-1];
 
		// Now, move that subquestion to the bottom 
		$('#question'+qID+' table.question tbody').append($('#question'+qID+' tr[id$="X'+qID+highCode+'"]'));
	});
 
</script>


.
Cheers,
Tony Partner

Solutions, code and workarounds presented in these forums are given without any warranty, implied or otherwise.

LimeSurvey is open-source and run entirely by volunteers so please consider donating to support the project.
The administrator has disabled public write access.
The following user(s) said Thank You: LloydW

Answers random order - partial randomization & keeping distinct answers fixed 6 months 2 weeks ago #103571

  • LloydW
  • LloydW's Avatar
  • OFFLINE
  • Gold Donor
  • Posts: 32
  • Thank you received: 1
  • Karma: 0
A super solution and well coded and explained - thanks Tony it works a charm. :cheer:

Many thanks.
The administrator has disabled public write access.

Answers random order - partial randomization & keeping distinct answers fixed 1 month 3 weeks ago #109726

  • dknvs
  • dknvs's Avatar
  • OFFLINE
  • Fresh Lemon
  • Posts: 12
  • Karma: 0
Hi,
I have found the following [url=http://http://manual.limesurvey.org/Workarounds:_Manipulating_a_survey_at_runtime_using_Javascript#Partially_Randomized_Answers_-_Multiple_Options_.26_List_.28radio.29_questions]script[/url] that helps me the make the last answer choice fixed.
However, it's only for codes that are in order. For example:
1 answer1
2 answer2
3 answer3

For our survey, we don't want to include "don't know" in the calculation. So we usually give DK as the don't know/none of above.
1 answer1
2 answer2
3 answer3
DK None of above

The following javascript will only work if we make DK a "4". Could you help me to this?
thank you!




<script type="text/javascript" charset="utf-8">

$(document).ready(function() {

// Identify this question
var qID = {QID};

// Find the number of answers
var ansCount = $('#question'+qID+' li.answer-item').length;

// Place the last answer created at the end of the list
var answer = $( 'input[id$="X'+qID+ansCount+'"]');
var answerItem = $(answer).closest('li');
var answersList = $(answer).closest('ul');
$(answersList).append(answerItem);

});
</script>
The administrator has disabled public write access.

Answers random order - partial randomization & keeping distinct answers fixed 1 month 3 weeks ago #109736

  • tpartner
  • tpartner's Avatar
  • OFFLINE
  • LimeSurvey Team
  • Posts: 4071
  • Thank you received: 748
  • Karma: 341
Try this

<script type="text/javascript" charset="utf-8">
 
	$(document).ready(function() {
 
	// Identify this question
	var qID = {QID};
 
	// Place the "DK" code option at the end of the list
	var answer = $( 'input[id$="X'+qID+'DK"]');
	var answerItem = $(answer).closest('li');
	var answersList = $(answer).closest('ul');
	$(answersList).append(answerItem);
 
	});
</script>
Cheers,
Tony Partner

Solutions, code and workarounds presented in these forums are given without any warranty, implied or otherwise.

LimeSurvey is open-source and run entirely by volunteers so please consider donating to support the project.
Last Edit: 1 month 3 weeks ago by tpartner.
The administrator has disabled public write access.
The following user(s) said Thank You: dknvs
  • Page:
  • 1
  • 2
Moderators: ITEd
Time to create page: 0.157 seconds
Donation Image