Problème de remplissage de champs dans un formulaire

fred_surz2002 Messages postés 21 Date d'inscription mercredi 23 mars 2005 Statut Membre Dernière intervention 19 février 2009 - 7 avril 2006 à 17:22
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 - 10 avril 2006 à 15:20
Bonjour,

je viens tout juste de me mettre au javascript et je rencontre deja un pb. Voila j'ai crée un fichier.jsp qui me permet d'editer un formulaire. Ce formulaire contient un certain nombre de champs dont 3 champs qui me bloquent. Je voudrais faire la chose suivante: on remplit le champ"taille", on appuie sur tab pour passer au champ "poids" que l'on remplit et on appuie encore sur tab. Cela remplit automatiquement un champ "bmi" valant valeur_poids/(valeur_taille * valeur_taille). Je ne sais pas du tout comment m'y prendre alors si j'espere que qq'un aura une idée. N'hésitez pas à me contacter si je n'ai pas été clair.

Merci.

fred

9 réponses

Phil_Free Messages postés 275 Date d'inscription samedi 4 juin 2005 Statut Membre Dernière intervention 28 avril 2006 11
7 avril 2006 à 20:23
Salut,

Il faut utiliser tabindex

Exemple:

<form method="get" action="get.htm">
Nom :

Prénom :

Téléphone :



</form>
0
fred_surz2002 Messages postés 21 Date d'inscription mercredi 23 mars 2005 Statut Membre Dernière intervention 19 février 2009
8 avril 2006 à 13:22
Mais est-il possible de creér un javascript pour faire cela et de l'appeler ensuite seulement dans la partie html?
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
8 avril 2006 à 16:34
Bonjour,

<script type="text/javascript">
function calcul()
{
document.frm.bmi.value=Number(document.frm.taille.value)*Number(document.frm.poids.value);
}
</script>
<form id="frm"
name="frm">



</form>

on fait le calcul dès qu'un champ perd le focus ( c'est un choix ! )
aucun contrôle sur la vaildité de la saisie.
pas de mise ne forme du résultat.
à amélliorer, largement, donc.

Cordialement. Bul. ~ Mon Site qu'il est à Moi ~<FO>
</FO>
</S< body>
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
8 avril 2006 à 16:39
et je n'ai pas respecté la formule demandée !!!!
valeur_poids/(valeur_taille * valeur_taille)

document.frm.bmi.value=Number(document.frm.pids.value)/(Number(document.frm.taille.value)*Number(document.frm.taille.value));

Cordialement. Bul. ~ Mon Site qu'il est à Moi ~<FO>
</FO>
</S< body>
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
fred_surz2002 Messages postés 21 Date d'inscription mercredi 23 mars 2005 Statut Membre Dernière intervention 19 février 2009
8 avril 2006 à 17:40
OK merci bul, j'essaye ca et je te tiens au courant. en tout cas, ca ressemble pas mal a ce que je voulais alors j'espere que je vais reussir a mettre ca en place.

fred
0
fred_surz2002 Messages postés 21 Date d'inscription mercredi 23 mars 2005 Statut Membre Dernière intervention 19 février 2009
10 avril 2006 à 09:30
Salut bul,

il me reste encore un problème, c'est que je dois respecter le formalisme utilisé dans le reste de mon fichier.jsp et je ne sais pas trop comment faire le parallèle avec ce que tu m'as donné.
Pour la partie HTML, ca donne ca:

<td class="transparent" width="50%">
<table border="0" cellpadding="3" cellspacing="3" width="100%">
<tr valign="top">
<td width="30%" class="transparent" style="text-align: right"><fl:getMessage code="" alt="poids"/></td>
<td width="70%">

<td class="transparent" width="50%">
<table border="0" cellpadding="3" cellspacing="3" width="100%">
<tr valign="top">
<td width="30%" class="transparent" style="text-align: right"><fl:getMessage code="" alt="taille"/></td>
<td width="70%">


<td class="transparent" width="50%">
<table border="0" cellpadding="3" cellspacing="3" width="100%">
<tr valign="top">
<td width="30%" class="transparent" style="text-align: right"><fl:getMessage code="" alt="BMI"/></td>
<td width="70%"/>

Par contre, je ne sais pas comment coder le fonction effectuant le calcul, je t'envoie un exemple de fonction déjà codée:


function doPerPhoneChange()
{


var f = document.forms[0];



var phoneField = f.PerPhone;



var faxField = f.PerFax;



var countryField = document.forms[0].CountryIDForFormatTel;



if (faxField.value ==
'' && phoneField.value.length > 3)
{


faxField.value = phoneField.value.substring(0, phoneField.value.length - 3);



}


doFormatTel(phoneField,
'<fl:getMessage code="L30B8" alt="Saisie du téléphone" js="true"/> :', countryField);


}

Merci
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
10 avril 2006 à 09:45
je connais très très mal le JSP mais ça génère une page HTML, non ?
et en javascript on a besoin de ce HTML...
alors un extrait de la page générée serait la bienvenue.

déjà :
...<fl:getMessage code="" alt="poids"/></td>
<td width="70%">
....

il faut une function doPerBmiCalculation()
qui utilise ce que crée <fl:getMessage code="" alt="poids" /> en HTML.

Cordialement. Bul. ~ Mon Site qu'il est à Moi ~<FO>
</FO>
</S< body>
0
fred_surz2002 Messages postés 21 Date d'inscription mercredi 23 mars 2005 Statut Membre Dernière intervention 19 février 2009
10 avril 2006 à 14:43
Est-ce que ce qui suit peut tenir la route:

<td class="transparent" width="50%">
<table border="0" cellpadding="3" cellspacing="3" width="100%">
<tr valign="top">
<td width="30%" class="transparent" style="text-align: right"><fl:getMessage code="" alt="Poids"/></td>
<td width="70%">

<td class="transparent" width="50%">
<table border="0" cellpadding="3" cellspacing="3" width="100%">
<tr valign="top">
<td width="30%" class="transparent" style="text-align: right"><fl:getMessage code="" alt="Taille"/></td>
<td width="70%">


<td class="transparent" width="50%">
<table border="0" cellpadding="3" cellspacing="3" width="100%">
<tr valign="top">
<td width="30%" class="transparent" style="text-align: right"><fl:getMessage code="" alt="BMI"/></td>
<td width="70%"/>




function doPerBmiCalculation()
{
var f = document.forms[0];
var heightField = f.PerHeight;
var weightField = f.PerWeight;
var bmiField = f.PerBmi;


bmiField.value = weight.value / (height.value * height.value);
bmiField = bmiField.toFixed(2);
}
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
10 avril 2006 à 15:20
je ne peux pas te répondre, c'est la page jsp, pas la page html/javascript...

var f = document.forms[0]; le 1er form du ducoment à éviter (?) donc, donner son name...
var heightField = f.PerHeight; pas compris
var weightField = f.PerWeight; pas compris
var bmiField = f.PerBmi; si un <form name="f"... contient un

Cordialement. Bul. ~ Mon Site qu'il est à Moi ~<FO>
</FO>
</S< body>
0
Rejoignez-nous