Bonjour,

Voila je rencontre un petit problème avec mon code.

J'ai un questionnaire, avec des réponses de type radio button. Elles ont pour valeur, un coefficient. Le tout enregistré dans mongodb.

Voici mon code html :

<!--réponses-->
    <div ng-repeat="r in q.reponses" class="col-lg-12">
        <div class="radio" data-placement="bottom-left">
            <label class="radio" id="labelRep" for="{{r.coefficient}}">
                <input type="radio" ng-model="reponseQuestionnaire.userAnswers[r.code]" value="{{r.coefficient}}" id="{{r.coefficient}}" class="custom-checkbox"/>
                    {{r.reponse}}
            </label>
        </div>
     </div>

Ce que je veux

Je souhaite multiplier entre-eux les coefficients correspondant aux réponses cochées.

Connaissez vous une fonction ?

Merci d'avance.

Bien cordialement.

A noter que la techno que j'utilise est AngularJS.

4 réponses


Salut,

Crées-toi un counter dans le scope de ton controller correspondant à la valeur des checkboxes checked et qui commence évidemment par 0.
Ensuite, tu mets un event listener au change sur chaque checkbox qui appelle une méthode permettant d'incrémenter ou de décrémenter le counter suivant l'état de la checkbox (cochée ou non, tu peux retrouver cette valeur dans le $event).

<input type="radio" on-change="updateCounter(r.coefficient, reponseQuestionnaire.userAnswers[r.code])" ng-model="reponseQuestionnaire.userAnswers[r.code]" value="{{r.coefficient}}" id="{{r.coefficient}}"class="customcheckbox"/>
$scope.counter = 0;
$scope.updateCounter = function ($event, coefficient, value) {
    // ton traitement ici
};

Salut et merci pour ta réponse!

Je vois à peu près ce que tu veux dire, je t'avoue aussi que je suis débutant. J'ai débuté AngularJs il y a 2 mois environ..
J'ai essayé de trouver une méthode mais sans succès.. peux-tu me passer la fonction qu'il faudrait ? tout en me l'expliquant ??

Merci d'avance !

$scope.updateCounter = function ($e, coefficient, value) {
    coefficient = parseInt(coefficient, 10);
    if (value == 1) $scope.counter += coefficient;
    else $scope.counter -= coefficient;
};

Code non testé, à toi de chercher, de tester et de creuser ;)

Salut betaWeb!

J'ai testé, cherché, creusé.. résultat je suis au fond du trou.. j'aurai besoin de ton aide pour me récupèrer..!

Désolé pour le dérangement !