Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Визуально не применяются стили CSS (https://javascript.ru/forum/misc/28384-vizualno-ne-primenyayutsya-stili-css.html)

zhentos 17.05.2012 15:18

[Решено] Визуально не применяются стили 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 мог бы и поругаться на дубляжи... Слава яйцам, всем спасибо :)

cmd 18.05.2012 00:32

company0 есть? если нет, то вот Вам и проблема.

person 18.05.2012 06:27

Цитата:

Сообщение от zhentos
если вытащить только данную функцию и форму на голую страницу

Сделай готовый html, очень любопытно где оно.
В котором разумеется не работает.

Если конечно cmd таки не угадал.

zhentos 18.05.2012 08:29

company0 есть
person,
http://pastebin.com/0TKjtagE

cmd 18.05.2012 13:22

Цитата:

Добавлю3: В общем с JS всё хорошо Проблема была в том, что в шаблоне CMS контент выводился 2 раза (для noscreen & noprint), дублируя ID ) к сожалению, т.к. шаблоны не мои, для меня это оказалось не очевидно) Немного напрягает только то, что js мог бы и поругаться на дубляжи... Слава яйцам, всем спасибо
JS на дубляжь id может ругаться и не будет, а вот валидатор HTML это обязательно сделает. Учитывая, что у Вас чистый HTML 4.0 Transitional без errors, то ошибка бросилась бы в глаза сразу.

person 19.05.2012 06:22

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

Этот доктайп не правильный, а не правильный доктайп игнорируют и переключаются в режим без доктайпа, вроде так.

Цитата:

Сообщение от cmd
Проблема была в том, что в шаблоне CMS контент выводился 2 раза

Как же не очевидно, при копировании количество текста удваивается, и одинаковые строки в глаза бросаются.

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

zhentos 19.05.2012 21:50

person, CMS )
Доктайп на сайте xhtml, это я просто для примера страничку выкладывал. cms, спасибо за валидатор) С точки зрения отлова дубликатов-id я его никогда не рассматривал.


Часовой пояс GMT +3, время: 15:43.