Hace más de un año, preguntabamos ¿Por que lo llamamos input cuando deberíamos llamarlo button?. Despues de varios comentarios vimos que uno de los problemas que nos llevan a depender de input's
para hacer el trabajo de buttons
es que Internet Explorer 6, al enviar todos los datos a la página siguiente hace exactamente eso, enviarlo todo, incluso otros elementos <button />
que podrían tener diferentes funcionalidades.
Para solucionar este problema, podemos optar por usar este código javascript únicamente para Internet Explorer 6.
function buttonfix() {
var buttons = document.getElementsByTagName('button');
for (var i=0; i<buttons.length; i++) {
if(buttons[i].onclick) continue;
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);
// Solo para IE 6
<!--[if lt IE 7]>
<script type="text/javascript" src="buttonfix.js"></script>
<![endif]-->
Este código, nos añadirá una funcionalidad que será ejecutada al hacer click
sobre cualquier elemento button de la página y que desactivará todos los elementos <button />
que encuentre para que no sean el que hemos seleccionado.
Esta solución, lamentablemente nos obliga a tener el javascript activado, así que más que solución es un parche, habrá que esperar a que IE6 desaparezca.
Via.
0 comentarios, 0 referencias
+
#