Comment limiter à "2" maximum la somme de 3 champs texte (format nombre)  (Lu 150 fois) Partager ce sujet Imprimer

1 B


sribera  05 juillet 2017 : 17:23

Merci infiniment Merlin, cela fonctionne à merveille, je n'ai eu qu'à cacher le total et c'est parfait. :bravo: :bravo: :bravo:
Désolée pour ce retour tardif, mais je n'étais pas au travail pendant plusieurs jours.

IP archivée


Merlin  26 juin 2017 : 14:43

J'ai placé ça dans les trois champs de saisie, ça à l'air de fonctionner :

nTotal = this.getField("QteProduit.1").value + this.getField("QteProduit.2").value + this.getField("QteProduit.3").value;
if (nTotal > 2)
{
event.value = 0;
nTotal = this.getField("QteProduit.1").value + this.getField("QteProduit.2").value + this.getField("QteProduit.3").value;
this.getField("total").value = nTotal;
}
else
{
this.getField("total").value = nTotal;
}

IP archivée


sribera  23 juin 2017 : 18:05

 :bonjour: Merci infiniment

IP archivée


Merlin  23 juin 2017 : 17:57

Oui c'est réalisable mais il faut un peu de temps, donc réponse dans les jours qui viennent…  :priere:

IP archivée


sribera  23 juin 2017 : 17:07

Bonjour Merlin
Merci beaucoup pour ce début de réponse, mais cela ne correspond pas totalement à mes attentes.
En effet, si je saisi "1" dans le champs "produit1", je peux encore saisir "2" dans les champs "produit2" ou "produit3" ce qui me fait un total de 3...
Or il me faut absolument un total de 2 maximum, donc sur les trois champs il ne peut-y avoir de saisi que (dans n'importe quel ordre)  :
Soit 2 + 0 + 0  (total = 2)
Soit 1 + 1 + 0  (total = 2)
Est-ce que c'est plus clair ? Est-ce réalisable ?  :mur:

IP archivée


Merlin  23 juin 2017 : 14:10

Bonjour.

Exemple ci-joint, le script de Calcul se trouve dans le champ total.
Le secret réside dans le petit script d'Action "champ désactivé" placé dans chaque champ de saisie qui empêche leur valeur d'être "null" ou "rien" en forçant la valeur à zéro si on ne saisi rien.
Zéro est également leur "Valeur par défaut", en cas de reset.

 :Smiley15:

Le script d'Action :

if (event.value == "" || event.value == null)
{event.target.value = 0;}


Le script de Calcul :
oProduit1 = this.getField("QteProduit.1");
oProduit2 = this.getField("QteProduit.2");
oProduit3 = this.getField("QteProduit.3");
nTotal = Number(oProduit1.value) + Number(oProduit2.value) + Number(oProduit3.value);
event.target.value = nTotal;
// Si total = 2 on désactive le(s) champ(s) à zéro
if (nTotal == 2)
{
if (oProduit1.value == 0)
{oProduit1.readonly = true;}
if (oProduit2.value == 0)
{oProduit2.readonly = true;}
if (oProduit3.value == 0)
{oProduit3.readonly = true;}
}
// si total < 2 on réactive tous les champs
else if (nTotal <= 2)
{
oProduit1.readonly = false;
oProduit2.readonly = false;
oProduit3.readonly = false;
}

IP archivée


sribera  23 juin 2017 : 08:54

Bonjour à tous,

Comment peut-on limiter la saisie de trois champs texte (chaque champ doit être entre 0 et 2) afin que la somme de ces 3 champs soit égale à "2" ?
Je sais faire une liste déroulante si nécessaire, mais elle ne limitera pas la somme à "2".
Pour que ce soit plus clair j'ai mis un fichier en exemple...

Merci d'avance pour toute l'aide que vous pourrez m'apporter.
 :Euuuh:

IP archivée