[RESOLU] Systeme de code avec numero

Petit nouveau ! | 1 Messages

31 juil. 2012, 23:43

Bonsoir cher internautes, j'appelle a l'aide car je ne trouve pas de renseignement concernant mon probleme.

J'ai créer un site ou les utilisateur tape leur mot de passe sur un clavier numérique comme dans les site de banque.

tout fonctionne, le seul probleme c'est que les lien de mes images liens numerote sont ecrit comme ca :
<form name="inputForm" id="changer" action="post.php" method="post">
<a value="5" onClick="clavier('5');" href="#"><img src="5.png"></a>
<a value="6" onClick="clavier('6');" href="#"><img src="6.png"></a>
<input type="password" name="message" id="message" class="input" readonly="readonly" /></form>

// J'ai ajouter mon script en haut de page  //

<script type="text/Javascript">
function clavier (valeur) {
	document.forms["changer"].elements["message"].value=document.forms["changer"].elements["message"].value+valeur;
}

</script>
le transfert de valeur dans une input a bien lieu, sauf qu'a chaque clic il remonte en haute de page au rechargement, et vu que le clavier ce trouve en bas c'est pas tres estetique,

comment faire pour transferer la valeur sans recharger la page ;-)

En esperant avoir etait comprehensible, merci d'avance !

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

01 août 2012, 01:22

C'est à cause de l'attribut href="#". En fait le # est une ancre qui permet de positionner l'ascenseur vertical au niveau d'un point d'ancrage de ta page : href="#monAncre". Dans ton cas, puisque rien ne suit le #, il te replace en haut de la page.

Pour éviter cela il faut inhiber l'action du lien, via un peu de javascript : href="javascript:void(0);". Mais du coup, tu peux tout aussi bien supprimer le onclick pour exécuter cette action sur le href (qui correspond finalement à un click sur le lien :))

A noter que l'attribut "value" n'a pas sa place dans une balise <a>

Code : Tout sélectionner

<a href="javascript:clavier('5');">...</a>
Edit : et tu peux aussi simplifier la lisibilité du traitement de ta fonction clavier en utilisant l'opérateur += :
[javascript]document.forms["changer"].elements["message"].value += valeur;[/javascript]
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Invité
Invité n'ayant pas de compte PHPfrance

01 août 2012, 01:32

Merci beaucoup pour cette réponse détailles, j'en attendais pas mieux, ca fonctionne parfaitement.

Je vais en profiter pour etudier plus en details le javascript ;-)

Merci ;-)