IE6 gère très mal les tags button quand on les utilise en remplacement du tag input : d'une part, quand il y a plusieurs boutons avec le même nom (par exemple pour des boutons permettant de choisir un action), on ne récupère que le dernier bouton, indépendemment du bouton cliqué ; d'autre part, la valeur transmise n'est pas celle spécifiée par l'attribut value, mais par le contenu du tag.

J'ai trouvé un début de solution, mais le bout de code dévoilé ne s'occupe pas de la mauvaise valeur envoyée. Voici donc ma version patchée :

Code à ajouter aux pages webs

	<!--[if IE]>
	<script type="text/javascript" src="skin/skinred/js/fixbutton.js"></script>
	<![endif]-->

Code fixbutton.js

function buttonfix(){
	var buttons = document.getElementsByTagName('button');
	for (var i=0; i<buttons.length; i++) {
		buttons[i].onclick = function () {
			for(j=0; j<this.form.elements.length; j++)
				if( this.form.elements[j].tagName == 'BUTTON' )
					this.form.elements[j].disabled = true;
			this.disabled=false;
			this.value = this.attributes.getNamedItem("value").nodeValue ;
		}
	}
}
window.attachEvent("onload", buttonfix);

Note

On remarquera que le libellé du bouton est modifié lors du clic, c'est normal, et c'est la conséquence de la gestion du bouton par IE. Au moins ça marche, et ça permet de profiter de la richesse du tag button.