Не удается включить флажки в IE при использовании элементов управления ASP.NET CheckBox - PullRequest
2 голосов
/ 29 июля 2011

У меня есть 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?

Ответы [ 6 ]

2 голосов
/ 20 августа 2013

Я только что нашел решение.У меня это работает!

var checkBox = document.getElementById('" + chkBox.ClientID + "');
checkBox.removeAttribute('disabled');
checkBox.parentNode.removeAttribute('disabled');
2 голосов
/ 04 октября 2012

Попробуйте с этим,

inputElement.removeAttribute( 'disabled' );
inputElement.closest('span').removeAttribute( 'disabled' );
0 голосов
/ 29 июля 2011

Попробуйте сделать это:

document.getElementById('chk1').getAttribute("disabled") = false;
0 голосов
/ 29 июля 2011

Чтобы установить флажок, я обычно применяю оба следующих параметра:

inputElement.disabled = false;
inputElement.removeAttribute( 'disabled' );

Некоторым браузерам нравится свойство узла DOM, другим нужно настроить attr.

Я прошу прощения, если это то, что вы сказали, что делали, но это не помогло - я не совсем понял, что вы говорите.

0 голосов
/ 29 июля 2011

На самом деле, вы делаете противоположное, чтобы включить свой флажок. Попробуйте это ...

document.formname.chkname.disabled='';
0 голосов
/ 29 июля 2011

Сначала проверьте вашу сеть, во-вторых, вот ссылка, хорошая функция для использования для вас

Флажок Отключить / Включить функцию JS

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...