Mise en forme conditionnelle

Résolu
fdthierry Messages postés 106 Date d'inscription lundi 24 novembre 2003 Statut Membre Dernière intervention 27 septembre 2019 - 10 mai 2005 à 18:04
fdthierry Messages postés 106 Date d'inscription lundi 24 novembre 2003 Statut Membre Dernière intervention 27 septembre 2019 - 25 mai 2005 à 13:34
Bonjour,


J'ai un tableau qui m'affiche toute une série de champ, à un champ précis nommé txtDoc j'ai un événement onchange.
J'aimerais que celui ci se mette en rouge si la valeur est changé.
J'ai essayé ceci:
function NbDoc()
{
var strDoc=0;
var strPx=0;
var strChxDoc='';
for (i=0; i<document.getElementsByName("txtDoc").length; i++)
{
if (document.getElementsByName("txtDoc")[i].value=='')
{
document.getElementsByName("txtDoc")[i].value=0;
}
else
{
strDoc+=eval(document.getElementsByName("txtDoc")[i].value);
}
document.getElementsByName("txtDoc")[i].style.backgroundColor = '#FBBFCE';
}
}


Mais à ce code, cela me met la colonne entière de couleur rouge, hors moi je désire uniquement celle changée !!!


Comment faire?


Amicalement,
Thierry

7 réponses

cs_bultez Messages postés 13616 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
11 mai 2005 à 15:30
il y a quelque chose qui m'échappe
pour faire une boucle
for (i=0; i<document.getElementsByName("txtDoc").length; i++)
sur tous les txtDoc, s'il faut n'en changer qu'un ?

function NbDoc(zone)
{ zone.style.backgroundColor='red';
// et on fait ce que l'on veut
// avec zone.value
}

<% Response.Write "this);>" %>

Cordialement. Bul. ~Site~~[mailto:marcelBultez@tiscali.fr Mail]~
3
cs_bultez Messages postés 13616 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
11 mai 2005 à 08:21
Bonjour,
for (i=0; i<document.getElementsByName("txtDoc").length; i++)
je ne comprend pas bien là
si les noms sont tous = txtDoc,
dans ce cas
for (i=0; i<formulaire.txtDoc.length; i++)
suffit,
les name ( ou id ) sont txtDoc0 à txtDocmaxi
i=0;
while ( document.getElementsByName("txtDoc"+i) ) {
ou
while ( document.getElementsById("txtDoc"+i) ) {
...
i++ ...
de plus on parle de la colonne entière de couleur rouge
et quel est le rapport avec txtDoc, il y a plusieurs colonnes,
chacune ayant un txtDoc particulier ou quoi ?
sur un tableau on peut accèder à une cellule par
tableau.rows(n° ligne).cells(n° colonne)....
donc en faisant varier n° ligne de 0 à rows.length
pour une colonne donnée, ça peut le faire.
il faudrait donner la définition du tableau.
Cordialement. Bul. ~Site~~[mailto:marcelBultez@tiscali.fr Mail]~
0
fdthierry Messages postés 106 Date d'inscription lundi 24 novembre 2003 Statut Membre Dernière intervention 27 septembre 2019
11 mai 2005 à 10:42
Bonjour,
Merci de m'aider, voici le détail::
Ces champs ne sont pas dans un formulaire mais dans une page avec un tableau d'ou le getElementsByName("txtDoc").length

Dans ce tableau, il y a admettons 15 lignes.
Mon évenement onChange est sur le champ txtDoc
Lorsque la valeur de la ligne 2 de ce champ est modifiée, je souhaite mettre un fond rouge:
document.getElementsByName("txtDoc")[i].style.backgroundColor = '#FBBFCE'
Je pense cela possible, mais systématiquement, il me met la colonne entière, autrement dit les 15 lignes pour ce champ!

Est ce plus clair ?
Amicalement
Thierry
0
cs_bultez Messages postés 13616 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
11 mai 2005 à 11:02
ben, non c'est pas plus clair, pour moi...

c'est comme ça ?

,
,
,
----
,
,

ou
<td></td></tr>
ou onchange sur chaque txtDoc ?
ou ???
il faudrait donner la définition du tableau.

Cordialement. Bul. ~Site~~[mailto:marcelBultez@tiscali.fr Mail]~
0

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

Posez votre question
fdthierry Messages postés 106 Date d'inscription lundi 24 novembre 2003 Statut Membre Dernière intervention 27 septembre 2019
11 mai 2005 à 13:52
voici un exemple de la ligne:
<tr>
<td>
<% Response.Write "" %>
</td>
<td>
<% Response.Write "
</td>
<td>
<% Response.Write "
</td>
<td>
<% Response.Write "
</td>
</tr>
La fonction onChange est celle saisie dans le premier post
Car non seulement, je souhaite modifier le fond du champ, mais je récupère sa valeur pour la mettre dans un champ afin d'avoir les x champs de la colonne du style 1,1,0,0,1,0,01,... que j'exploite ensuite dans ma page de traitement avec strDoc=split(request("txtDoc"))...
Que dire de plus, pourquoi cette méthode, car cette page avec ce tableau est dans une iframe et que mon form est dans la page parent.

Merci de ton aide
Amicalement,
Thierry
0
fdthierry Messages postés 106 Date d'inscription lundi 24 novembre 2003 Statut Membre Dernière intervention 27 septembre 2019
16 mai 2005 à 11:51
La boucle me sert à comptabiliser les choix de chaque choix dans un autre champ par séparateur ','
J'essaie ce que tu m'as noté et je te tiens au courant,

Amicalement
Thierry
0
fdthierry Messages postés 106 Date d'inscription lundi 24 novembre 2003 Statut Membre Dernière intervention 27 septembre 2019
25 mai 2005 à 13:34
Ca marche impec, j'avais oublié de répondre et d'accepter la réponse :o/

Sinon pour ce qui est de ma boucle je vais poster un nouveau msg ;o):

Amicalement,
Thierry
0