Vous n'êtes pas identifié(e).
Coucou,
Vu que le JS n'est pas trop ma tasse de thé, je m'en réfère à vous
En fait, je souhaiterais qu'une cellule de mon tableau réagisse en fonction de si SA checkbox est cochée ou pas (passage de la couleur bleu à la couleur rouge du background).
J'ai donc pondu cela ... mais je pense avoir un conflit entre le CSS et le JS (vu que je défini 2 fois le bgcolor) [Je précise que j'ai tenté d'oter le "doublon" dans le CSS, sans succès]
Dans ma page CSS
Dans ma page du formulaire :
Merci d'avance
MERCI de lire le mode d'emploi avant de poster !!
Hors ligne
c'est l'bordel :D:D
getElementById(moi) ??????????
toi toi, tu fais pas un peu de nombrilisme ?? :D
en fait, je ne vois pas dans le html de id="toi" ou autre chose d'ailleur
aller, d'autre conseils :
remplace onClick="change(this.name)" par onClick="change(this)"
et dans la fonction tu fais pas de getElementByID mais moi.qqchose
et tu as bien compris que dans ta function tu changes la couleur du check pas de la cellule !!!
enfin, avec jquery, c'est une ligne de code :D
a++
Hors ligne
rah, je suis bete, j'aurai dut le voir
Il a pas d'id a ma connaissance ton element la
De plus, si la checkbox avait cet id, c'est son fond a elle qui changerai. Donc forcément, ca ne fonctionnerait pas.
Perso j'aurai tendance a coller un id a la cellule (ou a la ligne, selon ce que tu veux), genre access01ligne , et un id a la checkbox, genre access01 (tu peux mettre le name pareil, mais il faut l'id si tu veux simplifier).
Ensuite ta fonction peut passer en
En changeant la classe carrément, tu pourra changer plusieurs style (si un jour tu veux la bordure aussi )
Enfin c'est ma vision hein
Bon courage
la v2, c'est tabou, on en viendra tous a bout
Hors ligne
aller, d'autre conseils :
remplace onClick="change(this.name)" par onClick="change(this)"et dans la fonction tu fais pas de getElementByID mais moi.qqchose
J'y pensais aussi, mais vu qu'a priori c'est un élément parent qu'il doit changer, va falloir qu'il passe une info a partir de laquelle il peut remonter ou "cibler" comme il veut
Connait pas jquery par contre, trop fainéant pour sortir une grosse lib quand j'ai pas grand chose a affecter (en général j'ai pas plus de 3 éléments qui changent dans le genre sur une page )
la v2, c'est tabou, on en viendra tous a bout
Hors ligne
manicow->
l’accès au parent est simple avec parentNode en JS
et si Allnoos le demande, je lui montre un exemple avec jquery
a++
Hors ligne
@ Manicow : effectivement, ça ne fait rien ...
@ Pierrot : parentNode ?? gné ?? (jquery ?? je sens qu'il va mal passer ^^)
Pour info, j'ai 25 checkbox... je n'en ai mis qu'une pour l'exemple
Pour une fois que je m'essaye au JS, ni ça, ni mon verificateur de champs ne fonctionne ....
Qui a dit "récalcitrant" ?? ^^
Bref, je teste cela à 14h et je reviens
Mici !!!!!!!
MERCI de lire le mode d'emploi avant de poster !!
Hors ligne
Saluton,
Il est vrai qu'appeler une fonction JS en lui passant comme paramètre this.name et prendre cette valeur pour faire une recherche par getElementById(), ça fait désordre.
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne
Bon, j'ai fait quelques modifs et je donne le mode complet :
P.S : le but est de changer le style de la cellule dans laquelle se trouve le checkbox
L'idée : la cellule est bleu, et lorsqu'on coche le checkbox, elle devient rouge.. le texte (Style4_0 a l'intérieur change aussi de couleur...)
Dans ma page CSS
Dans ma page du formulaire :
vu que j'ai viré le class=access, je n'ai plus de style ... donc plus rien qui ne s'affiche, en dehors du texte...
en gros, aucun appel aux style access0 et access1.
Par ailleurs, j'ai rajouté mon vérificateur de champs (qui ne fonctionne pas non plus) et qui devrait bloquer si le champs nom (requiredNOM) est vide... sauf qu'il ne fait pas non plus son taf
Bref, je modifie... mais je ne vois pas encore où ça plante...
MERCI de lire le mode d'emploi avant de poster !!
Hors ligne
j'ai attrapé mal a la tête avec d'arriver a la fin :D
>>document.validation_reception.elements[stylecase].checked == true
c'est quoi çà ????????????????
il fo mette stylecase.checked puisque que tu envoie le this
j'te dis que ça fais pas plus de 3 lignes en JQUERY.:rolleyes:
a++
Hors ligne
si en jquery, c'est abordable, je suis preneur ... mais tu connais mes compétences en JS ^^
MERCI de lire le mode d'emploi avant de poster !!
Hors ligne
<body>
<table id="mytable" border="1" style="width: 200px">
<col />
<tbody>
<tr>
<td><input class="mycheckamoi" name="check" type="checkbox" />chek1</td>
</tr>
<tr>
<td><input class="mycheckamoi" name="check" type="checkbox" />chek2</td>
</tr>
<tr>
<td><input class="mycheckamoi" name="check" type="checkbox" />chek3</td>
</tr>
<tr>
<td><input class="mycheckamoi" name="check" type="checkbox" />chek4</td>
</tr>
<tr>
<td><input class="mycheckamoi" name="check" type="checkbox" />chek5</td>
</tr>
<tr>
<td><input class="mycheckamoi" name="check" type="checkbox" />chek5</td>
</tr>
<tr>
<td><input class="mycheckamoi" name="check" type="checkbox" />chek5</td>
</tr>
<tr>
<td><input class="mycheckamoi" name="check" type="checkbox" />chek6</td>
</tr>
<tr>
<td><input class="mycheckamoi" name="check" type="checkbox" />chek7</td>
</tr>
<tr>
<td><input class="mycheckamoi" name="check" type="checkbox" />chek8</td>
</tr>
</tbody>
</table>
<script>
$(document).ready(function() {
$(".mycheckamoi").change(function() {
$(this).parent('td').toggleClass('yellow');
});
});
</script>
</body>
</html>
voilou
tu n'as rien a télécharger
bonne lecture
a++
Hors ligne
tu as vu qu'en JS y a vraiment rien
si tu veux des explications, je suis tout à toi
[code = javascript]
<script>
$(document).ready(function() {
$(".mycheckamoi").change(function() {
$(this).parent('td').toggleClass('yellow');
});
});
</script>
[/code]
Hors ligne
re,
en fait, je vais devoir le télécharger en local car c'est une appli INTRANET dont certains postes n'ont pas accès au web
mais ceci n'est qu'une liaison... je m'attache à ton script et je reviens pleurer ^^ quoique vu l'heure, je vais rentrer ....
La suite demain
[P.S : en attendant, un grand merci !!! toujours là quand le JS se fait pressant - faudra d'ailleurs que je t'embêtes pour un autre soucis d'impression,
mais ceci est une autre histoire un autre topic à venir ]
Par contre, je ne vois pas où tu appelles le style White !!!
MERCI de lire le mode d'emploi avant de poster !!
Hors ligne
>>Tu vois que tu es loin d'être naab en JS Alnoss ! T'as vu tout de suite qu'il avait oublié le retour à la normale du style.
qui a oublié quoi ?????:|
essaye et tu verra que rien n'est oublié
a++
Hors ligne
Xtg à raison
il manquai un pti qqchose :D
je remet le script a jour et complet
cette fois ci, il ne manque rien
[code = javascript]
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
<title>test2alnoss</title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<style>
.white { background:white; }
.yellow { background:yellow; }
</style>
</head>
<body>
<table id="mytable" border="1" style="width: 200px">
<col />
<tbody>
<tr>
<td><input class="mycheckamoi" name="check" type="checkbox" checked="checked" />chek1</td>
</tr>
<tr>
<td class ="white"><input class="mycheckamoi" name="check" type="checkbox" />chek2</td>
</tr>
<tr>
<td><input class="mycheckamoi" name="check" type="checkbox" />chek3</td>
</tr>
<tr>
<td><input class="mycheckamoi" name="check" type="checkbox" />chek4</td>
</tr>
<tr>
<td><input class="mycheckamoi" name="check" type="checkbox" />chek5</td>
</tr>
<tr>
<td><input class="mycheckamoi" name="check" type="checkbox" />chek5</td>
</tr>
<tr>
<td><input class="mycheckamoi" name="check" type="checkbox" />chek5</td>
</tr>
<tr>
<td><input class="mycheckamoi" name="check" type="checkbox" />chek6</td>
</tr>
<tr>
<td><input class="mycheckamoi" name="check" type="checkbox" />chek7</td>
</tr>
<tr>
<td><input class="mycheckamoi" name="check" type="checkbox" checked="checked" />chek8</td>
</tr>
</tbody>
</table>
<script type="text/javascript">
$(document).ready(function(){
$('#mytable td').each(function(){
$(this).addClass(function(){
return ($(this).children('input=checkbox').attr('checked')==true) ? 'yellow' : 'white'
})
});
$(".mycheckamoi").change(function() {
$(this).parent('td').toggleClass(function(){
return ($(this).attr('checked')==true) ? 'yellow white' : 'white yellow';
});
});
});
</script>
</body>
</html>
[/code]
a++
Hors ligne
je remet le script JS seul et le le commente.
remarquez bien que dans le code HTML j'ai coché le check1 (1er) et le check8 (dernier) a qui sera donc ajouter la class "yellow" par le script et tous les autres td se verrons ajouter la class "white" par le même script
j’espère que vous m'avez compris parce que, c'est tout simple :D
j'ai testé ce script et il fonctionne parfaitement.
@++
Hors ligne
bon, je viens de mettre en lumière un petit soucis..
Ton script fonctionne parfaitement tel qu'il est là... je l'ai testé en dehors de mon script sur un simple fichier html.
Sauf qu'a des fins d'ergonomie, j'ai fait en sorte que lorsque l'on clique sur le texte a coté de la checkbox, cela puisse la cocher aussi.
Cela est possible en encadrant par <label> </label> l'input + le texte tel que
Et là, ça ne fonctionne plus (la colorisation) [toujours dans le simple HTML].....
Une idée ???
MERCI de lire le mode d'emploi avant de poster !!
Hors ligne
nan, pas de label
evenement click sur le td et trigger sur le checkbox
normalement, en regardant le script existant, tu as toutes les billes
mais bon,si tu ne comprends pas, demande
a++
Hors ligne
rhooooo.... tu ne m'as pas lu !!!
Je sais que sur ton exemple, il n'y a pas de label..... sauf que pour mon ergonomie (cliquer sur les textes coche la checkbox, car les users trouvent la checkbox trop petite), j'ai besoin du label... (si tu veux tester l'effet, introduit le label comme dans mon post.. et clique sur le texte )
Si tu arrives à me sortir une solution où la case entière est cliquable (avec pour effet de cocher la checkbox) : je prends ^^... mais pour l'instant, je n'ai trouvé que cette parade
MERCI de lire le mode d'emploi avant de poster !!
Hors ligne
ouaaaaaaaaahhhhhhhhh
c'est toi qui ne m'as pas lu !!!
je te dis que tu n'as pas besoin de label ::rolleyes:
je me recite :
evenement click sur le td et trigger sur le checkbox
si tu ne comprend pas, demande plus d'explication.
pourquoi mettre un label alors qu'il n'y a pas besoin de label ????
pour alourdir ??
si tu veux que ça ouille ouille ouille plus vite, donne moi ton adresse msn
t'auras l'info presque en temps réel
a++
Hors ligne
effectivement, c'est la ligne "evenement click sur le td et trigger sur le checkbox" que je n'ai pas compris ^^
Pour le msn, j'ai reçu ton invit à midi ...mais je ne l'ai pas au taf donc on l'a fait "slowly" ^^
MERCI de lire le mode d'emploi avant de poster !!
Hors ligne
voilou, encore de la lecture
<body>
<table id="mytable" border="0" style="width: 200px">
<col />
<tbody>
<tr>
<td><input class="mycheckamoi" name="check" type="checkbox" checked="checked" />chek1</td>
</tr>
<tr>
<td><input class="mycheckamoi" name="check" type="checkbox" />chek2</td>
</tr>
<tr>
<td><input class="mycheckamoi" name="check" type="checkbox" />chek3</td>
</tr>
<tr>
<td><input class="mycheckamoi" name="check" type="checkbox" />chek4</td>
</tr>
<tr>
<td><input class="mycheckamoi" name="check" type="checkbox" />chek5</td>
</tr>
<tr>
<td><input class="mycheckamoi" name="check" type="checkbox" />chek5</td>
</tr>
<tr>
<td><input class="mycheckamoi" name="check" type="checkbox" />chek5</td>
</tr>
<tr>
<td><input class="mycheckamoi" name="check" type="checkbox" />chek6</td>
</tr>
<tr>
<td><input class="mycheckamoi" name="check" type="checkbox" />chek7</td>
</tr>
<tr>
<td><input class="mycheckamoi" name="check" type="checkbox" checked="checked" />chek8</td>
</tr>
</tbody>
</table>
<script type="text/javascript">
$(document).ready(function(){
$(".mycheckamoi").change(function(e){
$(this).parent('td').toggleClass(function(){
return ($(this).attr('checked')===true) ? 'select unselect' : 'unselect select';
});
e.stopPropagation();
}).click(function(e){
e.stopPropagation();
});
$('#mytable td').each(function(){
$(this).addClass(function(){
return ($(this).children('input=checkbox').attr('checked')==true) ? 'select' : 'unselect'
})
}).click(function(e){
var check=$(this).children('input=checkbox');
check.attr('checked',check.is(':checked')?false:true);
check.trigger('change');
e.stopPropagation();
});
});
</script>
</body>
</html>
bon courage.
a++
Hors ligne
le script seul, c'est plus lisible
@++
Hors ligne