11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour tout le monde Smiley smile

Voici mon probleme :
Je voudrais qu'à chaque modification du contenu d'un champs, celui ci-soit vérifié (via une fonction js).

j'y suis plus ou moins parvenu :

JS
function verifNom(elem){
	if(isNotEmpty(elem)) {
		elem.value=elem.value.toUpperCase();
		elem.style.backgroundColor="#AAFF00"
		document.getElementById("statusNom").innerHTML="";
		return true;		
	}
	else {
		elem.style.backgroundColor="red"
		document.getElementById("statusNom").innerHTML="Le champs nom ne doit pas être vide.";
		return false;
	}
}

Html
	<p>
		<label for="nom" title="Veuillez saisir votre nom en lettres majuscules" class="oblig">* Nom : </label>
		<input type="text" name="nom" id="nom" title="Veuillez saisir votre nom" class="oblig" tabindex="1" 
		onfocus="setFocus(this)" onblur="setBlur(this)"
		onkeyup="verifNom(this)"  />
		<span class="status" id="statusNom"></span>
	</p>


Seulement, si on a déjà entré des données dans le champs auparavant, lorsqu'on clique sur le champs, le navigateur nous propose une liste avec ces données.
Et si on choisit un élément dans cette liste, comme on ne presse aucune touche pour faire ce choix, le contenu n'est pas vérifié (la fonction JS n'est pas appelée)..

Ai je été assez clair dans ma tentative d'explication ?

Merci Smiley smile
Modifié par Dark elf (22 Apr 2007 - 14:09)
Double ton onkeyup d'un onchange, ça va peut-être résoudre le problème, et en plus, ça ne privera pas l'utilisateur de la fonction d'autocompletion.
Merci,

Malheureusement, le onChange n'est executé que lorsque l'on sort du champs...
Cela ne résoud pas mon problème.

C'est embetant, car en plus, ce formulaire sera surement rechargé avec des données dedans? Je voudrais que les champs appraissent alors comme validés (ils passents au vert lorsque c'est le cas) ..
Modifié par Dark elf (23 Apr 2007 - 09:42)