Welcome, Guest
Username: Password: Remember me
  • Page:
  • 1
  • 2

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

Re: Comparaison de deux valeurs numérique dans une même question 1 year 7 months ago #94646

  • darknico84
  • darknico84's Avatar
  • OFFLINE
  • Senior Lime
  • Posts: 60
  • Karma: 0
Avé, j'ai un peu fait évoluer cette question qui comporte maintenant 3 entrées numériques.
<script type="text/javascript" charset="utf-8">
 $(document).ready(function() {
   $('#movenextbtn, #movesubmitbtn').click(function(){
     var total = $('#answer899625X139X7074SQ001').val()
     var input1 = $('#answer899625X139X7074SQ002').val()
     var input2 = $('#answer899625X139X7074SQ003').val()
     var somme = parseInt(input1) + parseInt(input2)
     if ( parseInt(total) < parseInt(somme) )
     {
       alert ('Attention il y a un problème);
	return false;
     }
     else
     {
       return true;
     }
   });
});
</script>

Ce javascript me permet de tester que la somme des deux input n'est pas supérieur au total.
Ma question est toujours facultative, toutefois je voudrais que les répondants remplissent soit tous les champs, soit aucun. Si dans mes paramètre de questions je met "nombre de réponse mini"=3, même si la réponse est facultative si l'interlocuteur ne met aucune réponse le questionnaire bloque.
J'ai essayé de rajouter un
elif ( total == "" && input1 == "" && input2 == "" )
    {
return true;
}

mais ce n'est pas concluant. Du coup j'ai supprimé le nombre de réponse mini à 3 et ai mis ceci mais ça ne fonctionne pas mieux

elif ( total == "" || input1 == "" || input2 == "" )
    {
alert ('Attention tous les champs ne sont pas remplis');
return false;
}

Y a t-il une manière simple/propre de dire en validation de question :
Si tous les champs sont remplis : OK (en plus de ce qui est déjà en place)
Si aucun des champs n'est rempli : OK
Sinon : KO

La solution est peut être simple mais j'ai l'impression de ne pas aller du tout dans la bonne direction.

Bon week end
The administrator has disabled public write access.

Re: Comparaison de deux valeurs numérique dans une même question 1 year 7 months ago #94647

  • Nickko
  • Nickko's Avatar
  • OFFLINE
  • LimeSurvey Team
  • Posts: 2162
  • Thank you received: 275
  • Karma: 58
Là, faut vraiment que tu nous explique ce que tu veux faire vraiment, du point de vue fonctionnel, pas du point de vue technique parce que je n'ai rien compris.

Enfin, si j'ai compris ton code et ton problème mais pour te proposer une solution alternative ce n'est pas assez.

Je ne serais pas trop là aujourd'hui mais dès que je peux je passe ici et je te réponds.

Nickko
Nickko
Ergonome / Usability expert
The administrator has disabled public write access.

Re: Comparaison de deux valeurs numérique dans une même question 1 year 7 months ago #94648

  • darknico84
  • darknico84's Avatar
  • OFFLINE
  • Senior Lime
  • Posts: 60
  • Karma: 0
En fait j'ai deux questions
- la première où la personne peut (si elle veut) répondre avec des chiffres précis : cette question est facultative
- si la personne ne désire pas répondre précisément à cette question, elle est renvoyée vers une deuxième question où là elle peut répondre avec un pourcentage.

Si l'interlocuteur répond correctement à la première question on zappe la deuxième et on passe à la suite. Mais si pour des raisons qui lui sont propre cette personne ne désire pas répondre précisément à la première question on passe à la deuxième.

Le problème qui se pose à moi est que sur la première question j'aimerai valider le fait que tous les champs sont correctement remplis : soit rien du tout (et on passe à la deuxième) soit tous les champs (et on zappe la deuxième). Dans tous les autres cas je voudrais remonter un alerte.

Est-ce plus clair ainsi ?

Merci :)
The administrator has disabled public write access.

Re: Comparaison de deux valeurs numérique dans une même question 1 year 7 months ago #94650

  • DenisChenu
  • DenisChenu's Avatar
  • OFFLINE
  • Moderator Lime
  • Posts: 6551
  • Thank you received: 869
  • Karma: 257
count(that.QQ.NAOK) compte le nombre de réponses données à une question avec sous quetsion

is_empty({that.QQ.SGQA} test si toutes les sous questions de la question de code QQ sont vide.

Donc:
Equation de validation des sous question
count(that.QQ.NAOK)==0 or count(that.QQ.NAOK)==8
si 8 est le nombre de sous question

Je te laisse faire les conditions sur le même principe.

Denis
The administrator has disabled public write access.

Re: Comparaison de deux valeurs numérique dans une même question 1 year 7 months ago #94668

  • darknico84
  • darknico84's Avatar
  • OFFLINE
  • Senior Lime
  • Posts: 60
  • Karma: 0
Merci pour la syntaxe, je vais tester tout cela :)
Entre temps j'avais trouvé cette solution pas forcément propre mais qui a l'air de fonctionner
 <script type="text/javascript" charset="utf-8">
 $(document).ready(function() {
   $('#movenextbtn, #movesubmitbtn').click(function(){
     var total = $('#answer899625X139X7074SQ001').val()
     var input1 = $('#answer899625X139X7074SQ002').val()
     var input2 = $('#answer899625X139X7074SQ003').val()
     var somme = parseInt(input1) + parseInt(input2)
     if ( parseInt(total) < parseInt(somme) )
     {
       alert ('Erreur');
     }
     else if (!parseFloat($('#answer899625X139X7074SQ002').val()) ^ !parseFloat($('#answer899625X139X7074SQ001').val()))
     {
      alert ('Vous n\'avez pas rempli tous des champs');
      return false;
     }
     else if (!parseFloat($('#answer899625X139X7074SQ003').val()) ^ !parseFloat($('#answer899625X139X7074SQ001').val()))
     {
      alert ('Vous n\'avez pas rempli tous des champs');
      return false;
     }
     else if (!parseFloat($('#answer899625X139X7074SQ003').val()) ^ !parseFloat($('#answer899625X139X7074SQ002').val()))
     {
      alert ('Vous n\'avez pas rempli tous des champs');
      return false;
     }
     else
     {
       return true;
     }
   });
});
</script>

Nicolas
Last Edit: 1 year 7 months ago by darknico84.
The administrator has disabled public write access.

Comparaison de deux valeurs numérique dans une même question 1 year 6 months ago #96062

  • darknico84
  • darknico84's Avatar
  • OFFLINE
  • Senior Lime
  • Posts: 60
  • Karma: 0
Je me posais la question de savoir si mon code était propre, finalement à l'utilisation il ne l'est pas forcément ... en effet lorsque j'entre une valeur "0" dans le cadre de réponse :
- si le 0 est au niveau du cadre Q001, mon test est bon et me dit que la somme de 2 +3 ne peut pas être supérieure à 1
- si le 0 est dans un des deux autres cadres, ce zéro est interprété comme un champs vide et j'obtiens le désagréable message "Vous n'avez pas rempli tous les champs" ...

y a-t-il un moyen pour que ce zéro soit pris comme une valeur numérique ?

Merci d'avance pour vos lumières.
The administrator has disabled public write access.

Comparaison de deux valeurs numérique dans une même question 1 year 6 months ago #96070

  • darknico84
  • darknico84's Avatar
  • OFFLINE
  • Senior Lime
  • Posts: 60
  • Karma: 0
désolé pour le bruit ... j'ai fini par trouver la réponse à mon problème de js. Au cas où cela pourrait servir un jour à quelqu'un voici le code utilisé
<script type="text/javascript" charset="utf-8">
 $(document).ready(function() {
   $('#movenextbtn, #movesubmitbtn').click(function(){
     var repA = $('#answer125696X140X7172SQ001').val()
     var repB = $('#answer125696X140X7172SQ002').val()
     var repC = $('#answer125696X140X7172SQ003').val()
     var total = parseInt(repB) + parseInt(repC)
     if ( parseInt(repA) < parseInt(total) )
     {
       alert ('Le nombre B+C ne peut pas être supérieur au nombre A');
       return false;
     }
      else if ((repA === "") || (repB === "") || (repC === ""))
     {
      alert ('Vous n\'avez pas rempli tous des champs');
      return false;
     }
     else
     {
       return true;
     }
   });
});
</script>
Last Edit: 1 year 6 months ago by darknico84.
The administrator has disabled public write access.

Comparaison de deux valeurs numérique dans une même question 1 year 6 months ago #96105

  • DenisChenu
  • DenisChenu's Avatar
  • OFFLINE
  • Moderator Lime
  • Posts: 6551
  • Thank you received: 869
  • Karma: 257
Re,

Attention :
Ta solution ne fonctionne que avec le javascript activé, la solution avec le gestionnaire d'expression fonctionne aussi sans le javascript (test au niveau javascript sur la page (donc sur le navigateur client), mais test aussi en PHP (donc sur le serveur: moins détournable)).

Denis
The administrator has disabled public write access.
The following user(s) said Thank You: darknico84

Comparaison de deux valeurs numérique dans une même question 1 year 6 months ago #96110

  • darknico84
  • darknico84's Avatar
  • OFFLINE
  • Senior Lime
  • Posts: 60
  • Karma: 0
OKOK Merci pour les précision ... étant moins mauvais en JS qu'en gestionnaire d'expression Limesurvey, j'ai fait au plus rapide (mais au plus crados aussi :()
Dès que je peux j'essaye de convertir çq en Limesurvey.
The administrator has disabled public write access.
  • Page:
  • 1
  • 2
Moderators: Nickko
Time to create page: 0.474 seconds
Donation Image