Показать сообщение отдельно
  #1 (permalink)  
Старый 17.05.2012, 15:18
Новичок на форуме
Отправить личное сообщение для zhentos Посмотреть профиль Найти все сообщения от zhentos
 
Регистрация: 17.05.2012
Сообщений: 3

[Решено] Визуально не применяются стили CSS
Пытаюсь включить отображение дива с прописаным 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>&nbsp;</p>
	<p><strong>2. Введите № накладной</strong></p>
	<p><input type="text" name="info[1][issue]" size="20" /></p>
	<p>&nbsp;</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 мог бы и поругаться на дубляжи... Слава яйцам, всем спасибо

Последний раз редактировалось zhentos, 18.05.2012 в 09:31. Причина: Решено
Ответить с цитированием