Mise en forme conditionnelle [Résolu]

fdthierry 99 Messages postés lundi 24 novembre 2003Date d'inscription 15 avril 2014 Dernière intervention - 10 mai 2005 à 18:04 - Dernière réponse : fdthierry 99 Messages postés lundi 24 novembre 2003Date d'inscription 15 avril 2014 Dernière intervention
- 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
Afficher la suite 

Votre réponse

7 réponses

Meilleure réponse
cs_bultez 13619 Messages postés jeudi 13 février 2003Date d'inscription 15 octobre 2013 Dernière intervention - 11 mai 2005 à 15:30
3
Merci
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]~

Merci cs_bultez 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 75 internautes ce mois-ci

Commenter la réponse de cs_bultez
cs_bultez 13619 Messages postés jeudi 13 février 2003Date d'inscription 15 octobre 2013 Dernière intervention - 11 mai 2005 à 08:21
0
Merci
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]~
Commenter la réponse de cs_bultez
fdthierry 99 Messages postés lundi 24 novembre 2003Date d'inscription 15 avril 2014 Dernière intervention - 11 mai 2005 à 10:42
0
Merci
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
Commenter la réponse de fdthierry
cs_bultez 13619 Messages postés jeudi 13 février 2003Date d'inscription 15 octobre 2013 Dernière intervention - 11 mai 2005 à 11:02
0
Merci
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]~
Commenter la réponse de cs_bultez
fdthierry 99 Messages postés lundi 24 novembre 2003Date d'inscription 15 avril 2014 Dernière intervention - 11 mai 2005 à 13:52
0
Merci
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
Commenter la réponse de fdthierry
fdthierry 99 Messages postés lundi 24 novembre 2003Date d'inscription 15 avril 2014 Dernière intervention - 16 mai 2005 à 11:51
0
Merci
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
Commenter la réponse de fdthierry
fdthierry 99 Messages postés lundi 24 novembre 2003Date d'inscription 15 avril 2014 Dernière intervention - 25 mai 2005 à 13:34
0
Merci
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
Commenter la réponse de fdthierry

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.