Bienvenue, Invité
Nom d'utilisateur : Mot de passe : Se souvenir de moi
  • Page :
  • 1
  • 2

SUJET : Comparaison de deux valeurs numérique dans une même question

Comparaison de deux valeurs numérique dans une même question il y a 2 ans 5 mois #75958

  • darknico84
  • Portrait de darknico84
  • Hors ligne
  • Senior Lime
  • Messages : 60
  • Karma: 0
Bonjour,

Dans mes expérimentations limesurveyienne, j'aimerais pour des réponses multiples numériques pouvoir comparer les deux valeurs au moment de la validation. Ainsi si la première valeur entrée est inférieure à la seconde je balance un message d'erreur. Le truc c'est qu'avec le code suivant il ne se passe pas grand chose :

<script type="text/javascript" charset="utf-8">
function validation()
{
if ({INSERTANS:51145X130X6212SQ001}<{INSERTANS:51145X130X6212SQ02})
{
alert("Cela n est pas possible");
}
}
setTimeout("validation()",250);
</script>


ça ne fonctionne pas non plus avec les balises d'ouverture <script> ou <script LANGUAGE=javascript>

Où me trompe-je ? Ou cela n'est-il pas possible ainsi.

Si d'aventure vous avez des idées n'hésitez pas.

Merci d'avance.

Nicolas
L'administrateur a désactivé l'accès en écriture pour le public.

Re: Comparaison de deux valeurs numérique dans une même question il y a 2 ans 5 mois #75961

  • DenisChenu
  • Portrait de DenisChenu
  • Hors ligne
  • Moderator Lime
  • Messages : 6276
  • Remerciements reçus 801
  • Karma: 241
Salut,

Les INSERTANS ne servent que sur les pages suivantes.

Ici, les INSERTANS ne sont pas encore remplis, il faut donc utiliser les valeurs des champs de saisie.

Je pense qu'il va falloir faire un truc du genre:
<script type="text/javascript" charset="utf-8">
 $(document).ready(function() {
   $('#movenextbtn, #movesubmitbtn').click(function(){
     if ($('#answerSSSSXGGGGXQQQQsubQ1')<$('#answerSSSSXGGGGXQQQQsubQ2'))
     {
       alert ('Cela n\'est pas possible');
       return false;
     }
     else
     {
       return true;
     }
   });
});
</script>
Dernière édition: il y a 2 ans 5 mois par DenisChenu.
L'administrateur a désactivé l'accès en écriture pour le public.
Cet utilisateur a été remercié pour son message par: darknico84

Re: Comparaison de deux valeurs numérique dans une même question il y a 2 ans 5 mois #75981

  • darknico84
  • Portrait de darknico84
  • Hors ligne
  • Senior Lime
  • Messages : 60
  • Karma: 0
Merci beaucoup pour toutes ces informations. Je vais tester cela ce soir quand je ne passerai plus par un proxy car pour le moment ça ne change pas grand chose.
Pour ma culture perso, le "sub" entre le numéro de question et le numéro de réponse indique que l'on veut le résultat soumis par l'utilisateur ? (j'ai testé avec ou sans sub)

Voilà donc à quoi devrait ressembler mon code
<script type="text/javascript" charset="utf-8">
 $(document).ready(function() {
   $('#movenextbtn, #movesubmitbtn').click(function(){
     if ($('#answer51145X130X6212subSQ001')<$('#answer51145X130X6212subSQ002'))
     {
       alert ('Cela n\'est pas possible');
       return false;
     }
     else
     {
       return true;
     }
   });
});
</script>

Pour information, existe-t-il un dictionnaire des "objets" et règles de nommage limesurvey ? Afin de savoir comment utiliser les #answer INSERTANS etc... ?
Dernière édition: il y a 2 ans 5 mois par darknico84.
L'administrateur a désactivé l'accès en écriture pour le public.

Re: Comparaison de deux valeurs numérique dans une même question il y a 2 ans 5 mois #76001

  • TMSWhite
  • Portrait de TMSWhite
  • Hors ligne
  • LimeSurvey Team
  • Messages : 759
  • Remerciements reçus 82
  • Karma: 36
In 1.92, you can use the new "Question validation equation" and "Question validation equation tip" (docs.limesurvey.org/Advanced+question+se..._validation_equation) to accomplish this.

Here is a working example similar to your question - demo192.limesurvey.org/index.php?sid=65354&lang=en

It asks you to enter the ages of your children in descending order. The multiple numeric question has 4 sub-questions named sq1-sq4, so the Question validation equation is:
q1_sq1 >= q1_sq2 && q1_sq2 >= q1_sq3 && q1_sq3 >= q1_sq4

and the question validation tip is
You must enter the ages of your children in descending order

There is a new CSS style called em_q_fn_validation that controls the visibility of this message. The default templates prevent this from appearing until the page has been submitted. However, you can change that default so that that message appears immediately whenever the user enters a value that is not in descending order.

Here is the .lss file

Fichier attaché :

Nom du fichier : limesurvey_survey_65354.lss
Taille du ficher : 22 KB


/Tom
L'administrateur a désactivé l'accès en écriture pour le public.
Cet utilisateur a été remercié pour son message par: darknico84

Re: Comparaison de deux valeurs numérique dans une même question il y a 2 ans 5 mois #76006

  • darknico84
  • Portrait de darknico84
  • Hors ligne
  • Senior Lime
  • Messages : 60
  • Karma: 0
Thanks a lot for your answer, I guess I'll maybe have a look at 1.92 :)
L'administrateur a désactivé l'accès en écriture pour le public.

Re: Comparaison de deux valeurs numérique dans une même question il y a 2 ans 5 mois #76009

  • DenisChenu
  • Portrait de DenisChenu
  • Hors ligne
  • Moderator Lime
  • Messages : 6276
  • Remerciements reçus 801
  • Karma: 241
Salut,

Sinon, pour les codes .

Cela devrait être si je comprend bien:
'#answer51145X130X6212SQ001'
et
'#answer51145X130X6212SQ002'

Mais le mieux est de vérifier directement dans la source du questionnaire. FireBug sous FireFox par example pour t'y aider.

Denis
L'administrateur a désactivé l'accès en écriture pour le public.

Re: Comparaison de deux valeurs numérique dans une même question il y a 2 ans 5 mois #76020

  • darknico84
  • Portrait de darknico84
  • Hors ligne
  • Senior Lime
  • Messages : 60
  • Karma: 0
Effectivement, firebug me donne bien les valeurs que tu m'as indiquées par contre il y a un shmurtz dans le test car quoi que je mette il passe direct sur le else { return true; } . J'ai mis un alert dans cette section également pour vérifier par où passait le résultat du test.
<script type="text/javascript" charset="utf-8">
 $(document).ready(function() {
   $('#movenextbtn, #movesubmitbtn').click(function(){
     if ($('#answer51145X130X6212SQ001')>$('#answer51145X130X6212SQ002'))
     {
       alert ('Cela n\'est pas possible');
       return false;
     }
     else
     {
       alert ('Raoul!!');
       return true;
     }
   });
});
</script>

PS : j'ai inversé l'opérateur de test pour voir si cela change quelque chose.


En fait si j'essaye de balancer une de mes valeurs dans un alert j'obtiens [object Object]

alert ($('#answer51145X130X6212SQ002'));
Dernière édition: il y a 2 ans 5 mois par darknico84.
L'administrateur a désactivé l'accès en écriture pour le public.

Re: Comparaison de deux valeurs numérique dans une même question il y a 2 ans 5 mois #76025

  • DenisChenu
  • Portrait de DenisChenu
  • Hors ligne
  • Moderator Lime
  • Messages : 6276
  • Remerciements reçus 801
  • Karma: 241
Suis je bête .....

Il faut utiliser val() pour récupérer la valeur ....
Et en plus on va transformer en nombre pour être sûr ....
if (parseFloat($('#answer51145X130X6212SQ001').val())>parseFloat($('#answer51145X130X6212SQ002').val()))
Attention, le parsefloat n'est valide que pour les nombres avec le . comme séparateur, pas la ,.

Denis
L'administrateur a désactivé l'accès en écriture pour le public.

Re: Comparaison de deux valeurs numérique dans une même question il y a 2 ans 5 mois #76032

  • darknico84
  • Portrait de darknico84
  • Hors ligne
  • Senior Lime
  • Messages : 60
  • Karma: 0
Merci grand Gourou Schnoulle, cela fonctionne parfaitement.
L'administrateur a désactivé l'accès en écriture pour le public.

Re: Comparaison de deux valeurs numérique dans une même question il y a 2 ans 5 mois #76044

  • darknico84
  • Portrait de darknico84
  • Hors ligne
  • Senior Lime
  • Messages : 60
  • Karma: 0
Si cela peut servir un jour, voici le code final avec en plus un test vérifiant que les deux champs sont bien remplis :
<script type="text/javascript" charset="utf-8">
 $(document).ready(function() {
   $('#movenextbtn, #movesubmitbtn').click(function(){
     if (parseFloat($('#answer51145X130X6212SQ001').val())<parseFloat($('#answer51145X130X6212SQ002').val()))
     {
       alert ('Le nombre A ne peut pas être supérieur au nombre B');
       return false;
     }
     else if (!parseFloat($('#answer51145X130X6212SQ002').val()) ^ !parseFloat($('#answer51145X130X6212SQ001').val()))
     {
      alert ('Vous n\'avez pas rempli tous les champs');
      return false;
     }
     else
     {
       return true;
     }
   });
});
</script>
L'administrateur a désactivé l'accès en écriture pour le public.
  • Page :
  • 1
  • 2
Modérateurs: Nickko
Temps de génération de la page : 0.422 secondes
Donation Image