javascript: problema getElementById en IE

Estoy intentando adjuntar un evento de clic a una checkbox usando JavaScript. A continuación se muestra el HTML y JS.

          var cb = document.getElementById('caution_c'); cb.onclick = function() { alert(1); }    

El problema es que en IE, el evento click no se activa. He reducido la ubicación del problema. El problema es que hay una entrada oculta justo antes de la checkbox y ambos elementos tienen el mismo nombre. No estoy seguro de por qué esto está causando un problema (después de todo, estoy usando getElementById y el elemento oculto ni siquiera tiene una identificación).

¿Hay alguna razón válida para este tipo de comportamiento (sólo IE) Funciona bien en Firefox … como siempre :()? También, hay una buena solución (podría hacer document.getElementsByName (‘caution_c’) [1] pero no quiero …)

Internet Explorer se confunde con el name y el id . Se recomienda encarecidamente tratar estos dos atributos como si fueran lo mismo.

Puede solucionarlo bien 1) asegúrese de que no haya conflictos de id / name en su documento, o 2) anule el método getElementById nativo de IE .

Lea más sobre esto aquí .

Intenta usar un evento diferente como onchange o onfocus para ver si eso lo resuelve. Además, no creo que se onclick si un usuario hace clic en la checkbox, que puede ser o no la forma en que pretende que funcione.

Estoy de acuerdo, IE es pobre en entender cosas a nivel html. Preferiría agregar el enlace al botón en lugar de usar elementos de anclaje, ya que IE tiene problemas en el nivel de anclaje con document.getElementById (). Pruebe lo mismo con el botón y funcionará para otros usuarios.