Пытаюсь включить отображение дива с прописаным style="display:none" по онклику на определенном элементе. Функция своё отрабатывает, в консоли файрбага или хрома видно что свойство style.display меняется. Но визуально в браузерах всё остается прежним. Вызывая функцию напрямую из консоли - document.getElementById('company' + i).checked после отработки функции тоже возвращает true. Но в браузере, визуально флажок не ставится. В какую сторону копать?
Функция
function show_fields(company) {
if(company>3 || company<0) return false;
else {
for(i=0;i<=3;i++) {
if(company != i) {
document.getElementById('company' + i).checked = false;
document.getElementById('fields' + i).style.display = 'none';
}
else {
document.getElementById('company' + company).checked = true;
document.getElementById('fields' + company).style.display = 'block';
}
}
return true;
}
}
Пример хтмл скрытого блока. Их 4 штуки с разными id.
<div id="fields1" style="display:none">
<p> </p>
<p><strong>2. Введите № накладной</strong></p>
<p><input type="text" name="info[1][issue]" size="20" /></p>
<p> </p>
</div>
company - это радиобатоны при щелчке на них и вызывается функция. Вот пример батона.
<input type="radio" name="company" id="company1" value="1" onClick="show_fields(1)" />
Добавлю: Проблема во всех браузерах.
Остается в ФФ даже если вытащить только данную функцию и форму на голую страницу без цсс и js сайта. В ие и хроме начинает работать ФФ был не виноват) NoScript запрещал локальные скрипты. Ошибок в консоли при этом нет. Значения типа document.getElementById('foo').style.display (как знак того что функция все таки работает) при этом можно получить в консоли или алертом из тела скрипта. На вкладках HTML Firebug или Elements хрома, хтмл не меняется.
То что не работает в ФФ даже после того как осталась одна форма и функция говорит скорее всего о кривых руках Но вот хоть убей не могу понять что тут может быть не правильным... Вроде стандартный toggle...
Добавлю2: Получается, что свойства не применяются только на сайте. На чистой странице все ок. Проблема в каких то конфликтах с JS сайта. Сайт формируется umi.cms. И, к сожалению, у истоков его разработки я не стоял.
Только какие могут быть конфликты, если ничего в консоли не отображается. Проблему совпадения имен я исключил добавлением префикса к id и переменным.
Добавлю3: В общем с JS всё хорошо
Проблема была в том, что в шаблоне CMS контент выводился 2 раза (для noscreen & noprint), дублируя ID ) к сожалению, т.к. шаблоны не мои, для меня это оказалось не очевидно) Немного напрягает только то, что js мог бы и поругаться на дубляжи... Слава яйцам, всем спасибо