У меня есть HTML-форма с двумя отключенными флажками, а также изображение с событием onclick
, которое должно отображать всплывающее окно и включать флажки:
<input id="chk1" type="checkbox" disabled="disabled" />
<input id="chk2" type="checkbox" disabled="disabled" />
<img src="..." onclick="window.open('...'); document.getElementById('chk1').disabled=false;document.getElementById('chk2').disabled=false" />
за исключением того, что это не работает. Откроется всплывающее окно, но флажки никогда не включаются.
Вместо disabled=false
Я попробовал removeAttribute("disabled")
без удачи. Я также поместил window.open
в качестве последнего утверждения в onclick
без изменений.
jQuery отсутствует (пока), поэтому я не могу его использовать. Что я делаю не так?
Edit:
Когда я опубликовал это сообщение, я не смог раскрыть теги input
, которые отображаются ASP.NET. В ходе тестирования мы обнаружили, что существует разница между использованием <asp:CheckBox />
и <input type="checkbox" runat="server" />
, которая влияет на поведение disabled
в IE и FF.
У меня сложилось впечатление, что окончательный результат будет таким же, но, видимо, нет, хотя я не смог определить разницу. Рендеринг кода, как показано выше, работает в FF, но не в IE при использовании объекта CheckBox, но работает в обоих при использовании объекта HtmlInputCheckBox.
(Следует также отметить, что вызовы getElementById
фактически используют свойство ClientID ASP.NET для соответствующих элементов.)
Тогда мой вопрос: почему это так? Почему функциональность включения / выключения работает как в IE, так и в FF при использовании объекта HtmlInputCheckBox, но не для объекта CheckBox?