Partage
  • Partager sur Facebook
  • Partager sur Twitter

Validation fields SUM jQuery

Validation SUM champs de formulaire alimenté via POPOVER Bootstrap 4

    9 janvier 2018 à 16:58:50

    Bonjour,

    Suis pas expert JS, encore moins jQuery

    Je souhaite afficher le bouton SUBMIT uniquement lorsque la somme des champs est égal à la valeur.

    Le code est long, je l'ai mis sur JSFiddle

    https://jsfiddle.net/Cotiga/6muv5cfa/

    Si y a des personnes compétentes qui peuvent m'aider, d'avance merci.

    • Partager sur Facebook
    • Partager sur Twitter
      9 janvier 2018 à 17:04:10

      Bonjour COTIGA,

      Il faut qu'a chaque entrée dans un des deux champs tu additionne leurs valeurs, et c'est bien ce que tu fais, cependant ce sont deux string !

      Voilà pourquoi "10" + ".5" = "10.5" et ".5" + "10" != "10.5" il faut donc parser tes valeurs en float : https://www.w3schools.com/jsref/jsref_parsefloat.asp

      En espérant t'avoir aidé !

      • Partager sur Facebook
      • Partager sur Twitter
      Si debugger, c’est supprimer des bugs, alors programmer ne peut être que les ajouter | Développeur Web et Mobile chez Beemoov
        11 janvier 2018 à 21:18:12

        Merci Martin,

        Tu m'as mis sur le bon chemin.

        J'ai mis ce code sous le popover hide

        	$(document).delegate('.okCB', 'click', function(e){
        		e.preventDefault();
        		$('.cotipad1').popover('hide');
        
        		val1 = parseFloat(document.formAddi.regle_cb.value);
        		if (isNaN(val1) == true) val1 = 0;
        		val2 = parseFloat(document.formAddi.regle_ch.value);
        		if (isNaN(val2) == true) val2 = 0;
        		val3 = parseFloat(document.formAddi.regle_es.value);
        		if (isNaN(val3) == true) val3 = 0;
        		val4 = parseFloat(document.formAddi.regle_tk.value);
        		if (isNaN(val4) == true) val4 = 0;
        
        		var totalMontant = val1 + val2 + val3 + val4;
        		var cekimank = {{ number_format(($regler_resto->sum)/100, 2, '.', ' ') }} - totalMontant;
        
        		if(totalMontant=={{ number_format(($regler_resto->sum)/100, 2, '.', ' ') }}) {
        			document.getElementById("encaisseMultiple").style = "display:block";
        			document.getElementById("ce_ki_mank").style = "display:none";
        		} else {
        			document.getElementById("encaisseMultiple").style = "display:none";
        			 $("#ce_ki_mank").text("IL MANQUE " + cekimank + " €");
        		}
        	});
        

        Ca fonctionne nickel sous Chrome mais pas sous Firefox :/
        Je mettrais à jour le "jsfiddle" pour encore le soumettre.

        En tous cas, déjà un grand merci ;)

        • Partager sur Facebook
        • Partager sur Twitter

        Validation fields SUM jQuery

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown