11522 sujets

JavaScript, DOM et API Web HTML5

Pages :
(reprise du message précédent)

Bonjour kustolovic,

Je comprends ton code mais il ne marche pas dons mon test.

var soc = document.getElementById('soc');
var socVal = parseInt (soc.value, 10);
var socled = document.getElementById('socled');

soc.addEventListener("input", Fausse_Soc);

function Fausse_Soc ()
{

if (socVal.toString() === soc.value && socVal > 1900 && socVal < 2100)
{
socled.style.color = "#F00";
}
else
{
socled.style.color = "#999";
}

}


Si je tape 1960 il ne se passe rien.
Hello

Nan mais ton code ne pourra jamais marché.

Tes variables tu les as déclaré en début, en déhors de ta function. Elles sont là, seules... désespéré... elles sont assignées dès le chargement de la page. et c'est tout.

Toi ta fonction se déclenche lors d'un "input" dans la textbox. Et que qu'il se passe dans ta function ? on voit un if, avec un compare "==" d'une variable qui, je le rappelle, à été assigné au chargement, et en plus elle s'est fait parseInt la tronche, ce qui donne NaN (Not A Number) pour avoir parsInt rien. car tes valeur de getElementById quand tu charges la page sont vide

Il faudrait faire tes déclarations de variables dans la function.

https://codepen.io/JUSEN/pen/vYYyqKm?editors=1010
Modifié par JENCAL (21 Oct 2019 - 10:26)
Bonjour,

J'ai pris en compte la correction de code de JENCAL (merci) mais aussi un peu perfectionné la fonction.

L'idée est de filtrer le champ société quand il est rempli par un particulier.
Soit une année de naissance.
Soit une civilité : M, Mr, Monsieur, etc.
Soit une mention style "Particulier" ou "Personnel."

Voir le codepen.

A noter un traitement particulier pour "M" afin d'éviter que l'alerte ne se déclenche pour toutes les sociétés dont le nom commence par "M".

Si vous avez des idées d'amélioration, merci d'avance.

J'ai choisi une alerte très douce, un simple changement de couleur et en aucun cas contraignante.
Modifié par boteha_2 (28 Oct 2019 - 21:31)
Bonjour,

Si personne ne suggère d'améliorations je coche Résolu.

Encore merci de votre aide.
Pages :