Welcome to the LimeSurvey Community Forum

Ask the community, share ideas, and connect with other LimeSurvey users!

Verrouiller des choix pour une question type QCM

  • Pruneau
  • Pruneau's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
7 years 1 month ago - 7 years 1 month ago #147499 by Pruneau
Bonjour à tous,

Le titre n'est pas très explicite donc je vais tâcher d'être plus clair dans la description.

Dans mon formulaire, j'ai une question de type QCM (avec 3 choix possibles). En fonction des réponses d'une précédente question, j'aimerais verrouiller certains choix possibles parmi les 3.

Exemple :

1ère question : liste (boutons radio)

Que souhaitez-vous assurer ?
- un investissement locatif
- votre résidence principale

2ème question : choix multiples

Quelles garanties souhaitez-vous ?
- garantie A
- garantie B
- garantie C

Donc je voudrais que :
- si on coche un investissement locatif, le choix garantie A soit verrouillé automatiquement (ie coché par défaut sans possibilité de le décocher), ce qui laisse la possibilité de cocher ou non garantie B et/ou garantie C ;
- si on coche votre résidence principale , les choix garantie A et garantie B soient verrouillés automatiquement (ie cochés par défaut sans possibilité de les décocher), ce qui laisse la possibilité de cocher ou non garantie C.

Une âme charitable pour me venir en aide ?
Last edit: 7 years 1 month ago by Pruneau.
The topic has been locked.
  • DenisChenu
  • DenisChenu's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
7 years 1 month ago #147525 by DenisChenu
Replied by DenisChenu on topic Verrouiller des choix pour une question type QCM
Il faut jouer du javascript,
Selon tes code de question
Code:
$(document).on('click',"#answer{SGQ}A1",function(){
  $("#answer{Q2.sgq}A1").prop("checked",true).prop("readonly",true);
  $("#answer{Q2.sgq}A2").prop("checked",false).prop("readonly",false);
  $("#answer{Q2.sgq}A3").prop("checked",false).prop("readonly",false);
});
$(document).on('click',"#answer{SGQ}A1",function(){
  $("#answer{Q2.sgq}A1").prop("checked",false).prop("readonly",false);
  $("#answer{Q2.sgq}A2").prop("checked",true).prop("readonly",true);
  $("#answer{Q2.sgq}A3").prop("checked",true).prop("readonly",true);
});

Maintenant, cela me semble plus facile de masquer les sous question avec le gestionnaire d'expression : manual.limesurvey.org/Adding_answers_or_subquestions

Assistance on LimeSurvey forum and LimeSurvey core development are on my free time.
I'm not a LimeSurvey GmbH member, professional service on demand , plugin development .
I don't answer to private message.
The topic has been locked.
  • Pruneau
  • Pruneau's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
7 years 1 month ago #147557 by Pruneau
Waouh, merci beaucoup pour cette réponse !

Je me doutais bien qu'il fallait recourir au JS... Mais je n'y connais vraiment rien alors j'ai préféré demander pour être sûr.

Je comprends parfaitement le code, mais je ne sais pas où l'implanter dans LimeSurvey : dans l'éditeur de question (de la 2ème question, ie celle à choix multiples), dans l'éditeur de sous-questions (de la 2ème question), dans les filtres conditionnels, dans l'éditeur HTML en cliquant sur Source ? Voilà je suis un peu perdu à ce niveau-là donc je suis preneur de quelques indications.

Encore merci.
The topic has been locked.
  • DenisChenu
  • DenisChenu's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
7 years 1 month ago #147559 by DenisChenu
Replied by DenisChenu on topic Verrouiller des choix pour une question type QCM

Assistance on LimeSurvey forum and LimeSurvey core development are on my free time.
I'm not a LimeSurvey GmbH member, professional service on demand , plugin development .
I don't answer to private message.
The topic has been locked.
  • Pruneau
  • Pruneau's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
7 years 1 month ago #147562 by Pruneau
Parfait ! Merci beaucoup, du coup je suis passé par l'éditeur HTML de la question.

Par contre j'ai l'impression que la propriété "read only" ne fonctionne pas puisque les choix pré-cochés automatiquement (de la question 2) peuvent être décochés en cliquant dessus. Comment cela se fait-il ?
The topic has been locked.
  • DenisChenu
  • DenisChenu's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
7 years 1 month ago - 7 years 1 month ago #147581 by DenisChenu
Replied by DenisChenu on topic Verrouiller des choix pour une question type QCM
Ah zut, l'événement est en plus controlé par le gestionnaire d'expression.

Essaye cela:
Code:
$(document).on('click',"#answer{SGQ}A1",function(){
  $("#answer{Q2.sgq}A1").prop("checked",true).prop("readonly",true);
  $("#answer{Q2.sgq}A2").prop("checked",false).prop("readonly",false);
  $("#answer{Q2.sgq}A3").prop("checked",false).prop("readonly",false);
});
$(document).on('click',"#answer{SGQ}A1",function(){
  $("#answer{Q2.sgq}A1").prop("checked",false).prop("readonly",false);
  $("#answer{Q2.sgq}A2").prop("checked",true).prop("readonly",true);
  $("#answer{Q2.sgq}A3").prop("checked",true).prop("readonly",true);
});
$(document).on('click',"[readonly]",function(){
return false;
});

Assistance on LimeSurvey forum and LimeSurvey core development are on my free time.
I'm not a LimeSurvey GmbH member, professional service on demand , plugin development .
I don't answer to private message.
Last edit: 7 years 1 month ago by DenisChenu. Reason: clode code
The topic has been locked.
  • Pruneau
  • Pruneau's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
7 years 1 month ago - 7 years 1 month ago #147592 by Pruneau
Encore merci pour votre réponse !

Par contre ça n'a pas l'air de fonctionner, on a toujours la possibilité de décocher.

Par ailleurs, je viens de déceler un autre problème. En effet, pour cette question à choix multiples, j'exige dans les paramètres une réponse minimum donc j'ai un petit texte en rouge qui s'affiche au-dessus : "Veuillez sélectionner au moins une réponse". Jusqu'ici tout va bien, mais je me suis rendu compte que lorsque les choix étaient pré-cochés automatiquement (grâce au script JS), ce texte en rouge ne s'enlève (alors que ça devrait) et il m'est impossible de poursuivre le questionnaire. J'ai donc l'impression qu'il faut absolument une action de l'utilisateur (c'est-à-dire un clic sur un des choix) pour "prendre en compte la réponse".
Last edit: 7 years 1 month ago by Pruneau.
The topic has been locked.
  • DenisChenu
  • DenisChenu's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
7 years 1 month ago - 7 years 1 month ago #147593 by DenisChenu
Replied by DenisChenu on topic Verrouiller des choix pour une question type QCM
Pour le readonly, pourtant cela aurait du fonctionner. Pour l'alerte en rouge , à tenter:
Code:
 
$(document).on('click',"#answer{SGQ}A1",function(){
  $("#answer{Q2.sgq}A1").prop("checked",true).trigger('change').prop("readonly",true);
  $("#answer{Q2.sgq}A2").prop("checked",false).trigger('change').prop("readonly",false);
  $("#answer{Q2.sgq}A3").prop("checked",false).trigger('change').prop("readonly",false);
});
$(document).on('click',"#answer{SGQ}A1",function(){
  $("#answer{Q2.sgq}A1").prop("checked",false).trigger('change').prop("readonly",false);
  $("#answer{Q2.sgq}A2").prop("checked",true).trigger('change').prop("readonly",true);
  $("#answer{Q2.sgq}A3").prop("checked",true).trigger('change').prop("readonly",true);
});
$(function() {
  $(document).off('click',"#question{QID} [type='checkbox']");
  $(document).on('change',"#question{QID} [type='checkbox']",function(){
    checkconditions($(this).val(), $(this).attr("name'), 'checkbox')
  });

Mais bon, selon le besoin : utiliser les conditions sur les sous questions peut aussi être à envisager.

Denis
PS : idée pour le return false : le javascript inline est activé après le return false : pitete avec ready ....

Assistance on LimeSurvey forum and LimeSurvey core development are on my free time.
I'm not a LimeSurvey GmbH member, professional service on demand , plugin development .
I don't answer to private message.
Last edit: 7 years 1 month ago by DenisChenu.
The topic has been locked.
  • Pruneau
  • Pruneau's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
7 years 1 month ago #147596 by Pruneau
Bon finalement, je vais laisser tomber pour le readonly, le verrouillage n'est pas forcément nécessaire.

Et pour le texte en rouge, ça n'a pas fonctionné mais ce n'est pas non plus très important. De toute façon, il y aura toujours au moins un choix pré-coché donc je peux désactiver cette option d'au moins une réponse exigée.

Par contre, j'ai effectué un changement dans l'ordre des questions. Initialement, les 2 questions (celle liste à boutons + celle QCM) étaient l'une après l'autre et dans le même groupe de question. Mais j'ai voulu déplacer la question liste à boutons dans un autre groupe de questions placé au tout début du questionnaire. Et là, le script ne fonctionne plus : les choix ne sont plus pré-cochés automatiquement. Comme si ma réponse à la question liste à boutons n'était pas sauvegardée...

Une idée ?
The topic has been locked.
  • DenisChenu
  • DenisChenu's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
7 years 1 month ago #147598 by DenisChenu
Replied by DenisChenu on topic Verrouiller des choix pour une question type QCM
Parceque : manipuler sur la même page et sur une page différente : cela n'a rien à voir ....
Dans ce cas : manual.limesurvey.org/Expression_Manager..._Assignment_Operator

Au besoin : support.sondages.pro/

Assistance on LimeSurvey forum and LimeSurvey core development are on my free time.
I'm not a LimeSurvey GmbH member, professional service on demand , plugin development .
I don't answer to private message.
The topic has been locked.
  • Pruneau
  • Pruneau's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
7 years 1 month ago #147604 by Pruneau
Avec le gestionnaire d'expression, j'ai fait ceci pour la 1ère sous question :
Code:
{QCODE2_SQ001=if(QCODE1.NAOK=="A1","Garantie A","")}

En appelant QCODE1 le code de la question de type liste boutons radio et QCODE2 le code de la question de type QCM.

Cependant, cela me permet juste d'afficher ou non la sous-question, alors que moi je voudrais l'afficher et la cocher.
The topic has been locked.
  • DenisChenu
  • DenisChenu's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
7 years 1 month ago #147616 by DenisChenu
Replied by DenisChenu on topic Verrouiller des choix pour une question type QCM
"Garantie A" => "Y"

Assistance on LimeSurvey forum and LimeSurvey core development are on my free time.
I'm not a LimeSurvey GmbH member, professional service on demand , plugin development .
I don't answer to private message.
The topic has been locked.
Moderators: Nickko

Lime-years ahead

Online-surveys for every purse and purpose