FireFox обработка отключенных полей

У меня есть HTML-форма со списком выбора и переключателем, оба из которых изначально установлены с отключенным = true. В какой-то момент эти элементы включены через JavaScript (то есть, disabled = false). Это прекрасно работает в IE и Chrome, но в FireFox элемент остается отключенным. Кажется, он включен, но не реагирует на щелчки мышью. Когда я проверяю один из элементов с помощью FireBug, атрибут disabled имеет значение false. Существуют ли известные проблемы с FireFox при работе с элементами формы, которые изначально отключены, а затем включены?

Спасибо.

10.11.2009 20:33:00
Как вы снова активируете элементы? Не могли бы вы опубликовать код для нас, чтобы увидеть?
Buggabill 10.11.2009 20:58:29
Вы уверены, что это не эта ошибка? stackoverflow.com/questions/3004885/…
meo 2.06.2012 09:47:00
5 ОТВЕТОВ

Работает для меня:

<select id="a" disabled="true">
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
</select>

<script type='text/javascript'>
document.getElementById('a').disabled=false
</script>
0
10.11.2009 20:37:38

Я боролся с той же проблемой. Я все еще тестирую, но обнаружил, что обертывание элемента формы в тег span / div и присоединение onclick к span / div (с отступом), похоже, работают. Единственная оставшаяся проблема - установить z-index так, чтобы он перекрывал ввод и изменял его после щелчка, чтобы он находился под вводом формы (не уверен, если это возможно - я не люблю читать документы).


    функция редактирования (ID) {
        // необходимо добавить предыдущий код поля и установить для true значение true
        document.getElementById (ID) .disabled = ложь
        document.getElementById (ID) .focus ();
    }


// Начало кода тела

<form name="theform"><table><tr><td><span style="padding:5px;border:1px solid black;" onclick="edit('myId1');"><input  onclick="edit();"   disabled id="myId1" type="text"" value="Value One" /></span></td></tr></form>

// конец кода тела

0
11.11.2009 01:54:56

Я всегда использовал ...

document.getElementById (ID) .disabled = "отключено"

...а также...

document.getElementById (ID) .disabled = ""

... вместо истинного / ложного. Вы пробовали это?

0
11.11.2009 12:25:36
РЕШЕНИЕ

Я смог решить эту проблему, используя jQuery для установки и удаления атрибута disabled, а не устанавливая его напрямую. Я не уверен, что он делает под капотом, чтобы заставить его работать.

$(control).attr('disabled', 'disabled');
$(control).removeAttr('disabled');
1
11.11.2009 18:34:15

После того, как я сломал голову в течение 4 часов, вот что сработало для меня:

document.getElementById(ID).disabled = true|false;                // this works only in IE
document.getElementbyId(ID).setAttribute('disabled', true|false); // This works both in IE\FF
1
20.11.2011 12:29:35