Многочисленные проблемы. Наиболее вероятная основная проблема заключается в том, что вы запускаете свой код до загрузки страницы, и, таким образом, объект licenseAgreement еще не действителен. Вот краткое изложение того, что вы должны изменить.
Во-первых , этот код не будет работать в IE до IE9 по нескольким причинам. getElementsByName
не поддерживается должным образом в IE, а addEventListener
вообще не поддерживается до IE9. Вам придется использовать attachEvent
с IE и addEventListener
в других браузерах. См. JsFiddle ниже для кода, чтобы сделать это.
Второй , я бы предложил вам изменить на document.getElementById()
и дать вашим целевым элементам значение id
вместо значения name
. Это даст вам точный элемент, который вы хотите, и поддерживается кросс-браузер. См. JsFiddle ниже, чтобы узнать, как использовать getElementById
.
Третий , вы не показываете нам фактическую рабочую страницу, но я предполагаю, что вы запускаете свой код, чтобы прикрепить eventListener
до завершения загрузки страницы, что будет означать, что она не удается найти объект licenseAgreement, поскольку он еще не был проанализирован и загружен на страницу. Просто предположение, так как вы не показали нам реальную страницу, которая терпит неудачу. Вы можете либо переместить код инициализации в конец тела HTML, либо не можете вызывать его до тех пор, пока страница не загрузится, перехватив событие загрузки страницы и вызвав его оттуда. Ваш jsFiddle может работать, потому что вы указали в jsFiddle, что не хотите, чтобы ваш код выполнялся до загрузки страницы (функция jsFiddle).