count checked answers in multiple choice question

Plus d'informations
il y a 7 ans 4 mois - il y a 7 ans 4 mois #81247 par 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?
Dernière édition: il y a 7 ans 4 mois par barbacot.

Connexion ou Créer un compte pour participer à la conversation.

LimeSurvey Partners
Plus d'informations
il y a 7 ans 4 mois #81262 par 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

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 7 ans 4 mois - il y a 7 ans 4 mois #81264 par 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.
Dernière édition: il y a 7 ans 4 mois par barbacot.

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 7 ans 4 mois #81281 par 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.

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 7 ans 4 mois #81288 par 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???

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 7 ans 4 mois #81291 par 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

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 7 ans 4 mois #81304 par barbacot
It works beautifully. :woohoo:

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

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 4 ans 5 mois #119646 par 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?

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 4 ans 5 mois #119663 par 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

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 4 ans 5 mois #119670 par 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)

Connexion ou Créer un compte pour participer à la conversation.

Commencez dès maintenant !

Créez simplement un compte et commencez à utiliser LimeSurvey dès aujourd'hui.

Inscrivez-vous maintenant

Inscrivez-vous à notre Newsletter!