FireFox обработка отключенных полей - PullRequest
1 голос
/ 10 ноября 2009

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

Спасибо.

Ответы [ 5 ]

1 голос
/ 10 августа 2010

После того, как я сломал голову в течение 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 голос
/ 11 ноября 2009

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

$(control).attr('disabled', 'disabled');
$(control).removeAttr('disabled');
0 голосов
/ 11 ноября 2009

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



    function edit(ID) {
        // need to add previous field code and set disabled to true
        document.getElementById(ID).disabled=false
        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 ноября 2009

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

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

... и ...

document.getElementById (ID) .disabled = ""

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

0 голосов
/ 10 ноября 2009

у меня работает:

<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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...