Changer la class d'un oject en Javascript [Résolu/Fermé]

Signaler
-
 Utilisateur anonyme -
Bonjour,

Lorsque je clique sur un objet html de type button je souhaiterai lancer un focntion javascript qui permettrait de modifier la classe de mon button.

Je voudrai faire qqchose de ce genre mais le .class n'est pas bon:

<input type="button" class="buttonactif" name="Calculer" value="Calculer" onclick="changer_class()" >

<script>
function changer_class()
{
document.all("Calculer").class = "boutoninactif";
}
</script>

Merci d'avance!!

2 réponses

Messages postés
11
Date d'inscription
jeudi 8 septembre 2005
Statut
Membre
Dernière intervention
21 septembre 2005
65
Voilà, je sais c'est bisard mais en javascript se n'est pas .class mais .className (avec N,parce que sinon sa ne va pas).
Voilà un petit exemple :
<html>
<head>
<style>
.buttonType1 {
color : green;
}
.buttonType2 {
color : red;
}
</style>
<script language="javascript">
function change_class() {
var btn = document.getElementById("btnTest");
btn.className= "buttonType2";
}
</script>
</head>
<body>
<form>
<input type="button" value="Test" class="buttonType1" onclick="change_class()" id="btnTest">
</form>
</body>
</html>

bonne chance pour la suite .
64
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

Mille Merci ^^
Merci, cela est bien utile
Messages postés
41
Date d'inscription
samedi 14 novembre 2009
Statut
Membre
Dernière intervention
31 août 2016
15
Et s'il y a plusieurs classes ?

function classHandler(classes, btn)
{
if(classes === undefined) { return false; }
if(btn === undefined) { return false; }
if(!Array.isArray(classes)) { return false; }

var that = this;

that.events = new Array();
that.classes = classes;
that.btn = btn;
that.btn.className = that.classes[0];
that.current = 0;

that.next = function()
{
if(that.current === that.classes.length) { that.current = 0; } else { that.current++; }
that.btn.className = that.classes[that.current];
};

that.bindEvent = function(evtName)
{
that.btn.addEventListener(evtName, function Event(e)
{
that.events.push({ name: evtName, func: Event });
that.next();
}, true);
};

that.unbindEvent = function(evtName)
{
for(var i = 0; i < that.events.length; ++i)
{
if(that.events[i].name === evtName)
{
that.btn.removeEventListener(that.events[i].name, that.events[i].func, true);
that.events.unset(i);
break;
}
}
};

Array.prototype.unset = function(index)
{
if(index > -1)
{
this.splice(index,1);
}
};
}

I haven't tryied the code but it should work, i think :)

En fait ... pour la petite histoire ... on n'utilise pas "class" car le mot est réservé en javaScript. Du coup pour éviter tout conflit, on doit utiliser className