Check out the LimeSurvey source code on GitHub!

Coloriage réponse dans un tableau

More
3 years 6 months ago #98880 by titoun31
Bonjour,

Je souhaiterais améliorer un tout petit peu l'ergonomie d'un de mes questionnaires qui comportent beaucoup de tableaux de questions à 4 modalités classiques. Je souhaiterais quand un répondant coche sa réponse sur une ligne que cette case se colorie d'une couleur personnalisée.

J'imagine qu'il faudrait que je rajoute une fonction onclick() dans une source (?) quelque part avec un petit script JS que je peux intégrer dans mon template.
Quelqu'un aurait déjà vu un petit code ou un workaround sur ce sujet ? ou sinon, auriez-vous quelques indications pour bien placer cette fonction ou autres ?

Merci bcp,

Thibault

Please Log in to join the conversation.

More
3 years 6 months ago #98881 by Nickko
Je n'ai pas encore vu de Workarround pour ça, je pense qu'avec un peu de JS comme tu le dis tu pourras faire ce que tu veux. Je ne maîtrise pas assez la question pour te dire comment faire par contre.

Nickko
Ergonome / Usability expert

Please Log in to join the conversation.

More
3 years 6 months ago #98884 by titoun31
Merci Nickko pour ton retour... Je vais essayer de chercher un peu dans ce sens. Si je trouve un truc, je vous en ferai part ! :)

Bon aprem !

Thibault

Please Log in to join the conversation.

More
3 years 6 months ago #98894 by DenisChenu
Salut,

Un système de :
$("table.question").delegate('input.radio','click', function(e) {
  if($(this).is(':checked')){
    $(this).closest('tr').find('td').removeClass('selected');
    $(this).closest('td').addClass('selected');
  }else{
   $(this).closest('tr').find('td').removeClass('selected');
  }
});

Denis

Assistance on LimeSurvey forum and LimeSurvey core development are on my free time.
I'm not a LimeSurvey GmbH member, professional service on demand (or search sondages pro).
The following user(s) said Thank You: titoun31

Please Log in to join the conversation.

More
3 years 6 months ago #99115 by titoun31
Merci Denis pour ce code.
J'ai mis un peu de temps à le tester mais il fonctionne, seulement uniquement que lorsque le click est sur l'input.radio pas sur l'array du tr.td
J'ai essayé de modifier les conditions mais sans trop de succès : aurais-tu une petite idée STP ?

Merci bcp bcp !

Thibault

Please Log in to join the conversation.

More
3 years 6 months ago #99159 by DenisChenu
Salut,

Ouaip, corrigé dans le version 2.05 ...

Ajoute cela dans ton template.js :
/**
 * Adapt cell to have a click on cell do a click on input:radio or input:checkbox (if unique)
 * Using delegate the can be outside document.ready
 * @author Denis Chenu / Shnoulle
 */
function prepareCellAdapters()
{
	$('table.question').delegate('tbody td input:checkbox,tbody td input:radio,tbody td label',"click", function(e) {
		e.stopPropagation();
	});
	$('table.question').delegate('tbody td',"click", function() {
		if($(this).find("input:radio,input:checkbox").length==1)
		{
			$(this).find("input:radio").click();
			$(this).find("input:radio").triggerHandler("click");
			$(this).find("input:checkbox").click();
			$(this).find("input:checkbox").triggerHandler("click");
		}
	});
}

Assistance on LimeSurvey forum and LimeSurvey core development are on my free time.
I'm not a LimeSurvey GmbH member, professional service on demand (or search sondages pro).
The following user(s) said Thank You: titoun31

Please Log in to join the conversation.

Moderators: Nickko
Imprint                   Privacy policy         General Terms & Conditions         Revocation information and revocation form