probleme sou firefox

garry
Invité n'ayant pas de compte PHPfrance

29 déc. 2008, 18:08

Salut a tous, j'utilise cette fonction pour bloquer si le chekbox n'a pas été coché :

function chek(formu,champ) {
var b = eval('document.' + formu + '.' + champ);
if (!b.status) {alert("Pas coché");}
}

ca marche bien sous ie mais pas sous firefox, et quand je teste la valeur de b.status sous ie c'est true ou false selon si c'est coché ou pas mais sous firefox c'est undefined... Merci pour votre aide

ViPHP
AB
ViPHP | 5818 Messages

29 déc. 2008, 19:44

En javascript, j'utilise les fonctions de base tant que possible pour éviter les problèmes d'incompatibilité.

après avoir défini un id à mon chekbox (ici chekbox1) je fais ça

Code : Tout sélectionner

if(document.getElementById("chekbox1").checked) {}

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

29 déc. 2008, 20:11

Pas besoin d'un eval() :

var b = document.forms[formu].elements[champ]; te donnera le même résultat :)

Quant aux cases à cocher, pour savoir si une case l'est ou pas, c'est effectivement la propriété "checked" qu'il faut tester :
function chek(formu,champ) { 
  if (!document.forms[formu].elements[champ].checked) {
    alert("Pas coché");
  }
} 
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

garry
Invité n'ayant pas de compte PHPfrance

29 déc. 2008, 22:04

Merci pour vos réponses, ce que je voulais surtout comprendre c'est pourquoi sous ie .status renvoie true (ou false) et sous firefox undefined, mais bon je remplacerai par checked .. Merci encore

Eléphant du PHP | 174 Messages

29 déc. 2008, 22:45

Bonsoir.

Après recherche il semblerait que la propriété .status est normalement applicable à l'objet window.

window.statut permet de modifier le statut par défaut de ta barre d'action (en particulier le texte affiché lorsqu'aucune action est en cours).

Visiblement, IE te retourne true ou false selon qu'une action est en cours ou non.

En revanche firefox est plus pointilleux : il te retourne undefined parce que pour lui b n'est pas un objet de type window.

En espérant t'avoir apporté une réponse compréhensible, je te souhaite une bonne soirée et une bonne progra.

PS : si ton problème est résolu, pense à tagger [Résolu] ^^
"Il vaut mieux avoir du luxe dans ses sentiments que sur ses habits, je ne crains, moi, le mépris de personne" Honoré De Balzac.
"On s'étonne trop de ce que l'on voit rarement et trop peu de ce que l'on voit chaque jour" Mme de Genlis
"L'absence diminue les médiocres passions et augmente les grandes comme le vent éteint les bougies et allume le feu" La RocheFoucauld
"People have hope because they can't see Death standing behind them" (anonymous)
"Of all the things I've lost, I miss my brain the most" (from a fanfic)