count checked answers in multiple choice question

More
7 years 4 months ago - 7 years 4 months ago #81247 by barbacot
I installed latest version of limesurvey to give it a try.

i like it very much but I need advise on how to do one thing:

I have a multiple choices question with approximately 70 choices. From this a user must check at most 12. Since he can check so many answers I want a possibility for him to show near the question (up or down) a field with how many choices he checked (real time) or how many he has left (this is even better) -some kind of real time counter.

Is this possible???

I found on the internet this script but for some reason it doesn't work:
<script type="text/javascript">
function Custom_On_Load(){
$(document).ready(function() {
 
/* Hide the answer box from this current question, because we will store the value of the count in this question */
$( ‘#question77′ ).hide();
 
$( ‘#question76 td.answer input.checkbox).change(function() {
var checkedCount = 0;
 
$( ‘#question76 td.answer input.checkbox).each(function(i) {
if ( $( this ).attr(‘checked’) == true ) {
checkedCount++;
}
});
 
if ( checkedCount > 1 ) {
$( ‘#question77 td.answer input.checkbox).attr(‘checked’, true);
}
else {
$( ‘#question77 td.answer input.checkbox).attr(‘checked’, false);
}
});
});
}
 
</script>
 
 

where 76 and 77 are the question's ID (I think...).

Can someone please tell me if there is something wrong with this code or if there is any other possibility to achieve what I described at the start of the topic?
Last edit: 7 years 4 months ago by barbacot.

Please Log in or Create an account to join the conversation.

LimeSurvey Partners
More
7 years 4 months ago #81262 by tpartner
That is obsolete code to populate a hidden question.

If you have 70 choices, where do you want to insert the counter? With so many answers, it may not always be visible as the respondent scrolls.

Cheers,
Tony Partner

Solutions, code and workarounds presented in these forums are given without any warranty, implied or otherwise.
Official LimeSurvey Partner - partnersurveys.com

Please Log in or Create an account to join the conversation.

More
7 years 4 months ago - 7 years 4 months ago #81264 by barbacot
The answer are not so big and on two columns.
I would want the counter at the bottom of the question because the user start from the top and it is more important for him to see the remaing choices at the bottom.

If a counter is a bad idea in this context than maybe how to disable the unchecked checkboxes after the user chooses the maximum allowed responses with a messagebox to tell him that he checked all the maximum answers.
Last edit: 7 years 4 months ago by barbacot.

Please Log in or Create an account to join the conversation.

More
7 years 4 months ago #81281 by TMSWhite
It is possible to show such a real-time counter.

You might want to do two things:
(1) Use the advanced question option to set the max number of allowable answers to 12. This will dynamically color code the message "Please select up to 12 answers", making it turn pink (a warning color) if the user selects too many.
(2) Add a tailored message to the help text, saying "Please check {x} more boxes", where {x} is an equation like this (assuming your question is called "q"):
{12 - count(q_1, q_2, q_3, ..., q_70)}

Here is a working example of something similar. Note at the bottom of the figure that it dynamically counts how many numbers have been entered in the preceding questions.

Please Log in or Create an account to join the conversation.

More
7 years 4 months ago #81288 by barbacot
Thank you very much.
It is working...

One more question if you are so kind: is there some kind of scripting event so that all the checked answers in multiple choices question become red or green or any other color when the user check the corresponding checkboxes???

Please Log in or Create an account to join the conversation.

More
7 years 4 months ago #81291 by tpartner

is there some kind of scripting event so that all the checked answers in multiple choices question become red or green or any other color when the user check the corresponding checkboxes?


Add the following to the end of template.js:
$(document).ready(function(){
 
	// Listener on the checkboxes
	$('input.checkbox').click(function(e){
		if($(this).is(':checked')) {
			$(this).next('label').addClass('checkedLabel');
		}
		else {
			$(this).next('label').removeClass('checkedLabel');
		}
	});
});

And then add something like this to the end of template.css:
.checkedLabel {
	color:#009900;
}

Cheers,
Tony Partner

Solutions, code and workarounds presented in these forums are given without any warranty, implied or otherwise.
Official LimeSurvey Partner - partnersurveys.com

Please Log in or Create an account to join the conversation.

More
7 years 4 months ago #81304 by barbacot
It works beautifully. :woohoo:

Thank you very much for your kind support.
Great open source application.

Please Log in or Create an account to join the conversation.

More
4 years 5 months ago #119646 by boriginal
Hey,

for me this script is not working. I can not recognize any differences after embedding the two scripts into the two respective files.

Is this script still working with the latest LimeSurvey Version?

Please Log in or Create an account to join the conversation.

More
4 years 5 months ago #119663 by tpartner
Works for me in the latest version. Do you have any JavaScript errors in the console? Try using Firebug or developer tools to see if the "checkedLabel" class is being applied.

Cheers,
Tony Partner

Solutions, code and workarounds presented in these forums are given without any warranty, implied or otherwise.
Official LimeSurvey Partner - partnersurveys.com

Please Log in or Create an account to join the conversation.

More
4 years 5 months ago #119670 by Ben_V
Related 100% EM syntax for a "Q1" question
<span style="color:red">{if((count(that.Q1.NAOK) < 1),(count(that.Q1.NAOK)),'')}</span><span style="color:green">{if((count(that.Q1.NAOK) >= 1),(count(that.Q1.NAOK)),'')}</span>

Benoît

EM Variables => bit.ly/1TKQyNu | EM Roadmap => bit.ly/1UTrOB4
Last Releases => 2.6x.x goo.gl/ztWfIV | 2.06/2.6.x => bit.ly/1Qv44A1
Demo Surveys => goo.gl/HuR6Xe (already included in /docs/demosurveys)

Please Log in or Create an account to join the conversation.

Start now!

Just create your account and start using Limesurvey today.

Register now
Join our Newsletter!