Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Див реагирует только на втором нажатии

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
metra
Отправлено: 04 Марта, 2011 - 09:20:46
Post Id



Гость


Покинул форум
Сообщений всего: 85
Дата рег-ции: Янв. 2011  


Помог: 0 раз(а)




Код формы:
CODE (html):
скопировать код в буфер обмена
  1. {foreach from=$all_categories item=cat}
  2.         {assign var="p" value="not"}
  3.         {foreach from=$profs item=prof}
  4.                 {if $cat.id == $prof.category_id}{assign var="p" value=$prof}{/if}
  5.         {/foreach}
  6.         <br><input onclick = "hide_show({$cat.id})" type = "checkbox" name = "prof{$cat.id}" {if $p != 'not'}checked{/if} > {$cat.name}
  7.         <textarea {if $p == 'not'}class = "textarea1_hidden"{else}class = "textarea1"{/if} id = "abc{$cat.id}" name = "prof_description{$cat.id}">{if $p != 'not'}{$p.description}{/if}</textarea>
  8.         {/foreach}


JavaScript:
CODE (javascript):
скопировать код в буфер обмена
  1. function hide_show(id)
  2.         {
  3.                 if(document.getElementById('abc'+id).style.display == 'none')
  4.                 { document.getElementById('abc'+id).style.display = 'block' }
  5.                 else
  6.                 { document.getElementById('abc'+id).style.display = 'none' }
  7.         }


CSS:
CODE (htmlphp):
скопировать код в буфер обмена
  1. .textarea1, .textarea1_hidden { width: 374px; height: 150px; padding: 5px; display: block; }
  2. .textarea1_hidden { display: none; }


Суть проблемы: те checkbox'ы, которые на момент отображения страницы отмечены, работаю правильно в плане сокрытия смежных им textarea, а те, которые не отмечены, работаю так - при нажатии checkbox отмечается, но смежный textarea не показывается и только при повторном нажатии (убираем галочку) он показывается. Что противоречит логике.
 
 Top
Viper
Отправлено: 04 Марта, 2011 - 10:26:55
Post Id



Активный участник


Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007  
Откуда: Симферополь


Помог: 98 раз(а)




metra пишет:
Что противоречит логике.

Противоречит логике ваша проверка if(document.getElementById('abc'+id).style.display == 'none') и иже с ними.

Для начала нужно проверять отмечен ли чекбокс.


-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
metra
Отправлено: 04 Марта, 2011 - 10:58:53
Post Id



Гость


Покинул форум
Сообщений всего: 85
Дата рег-ции: Янв. 2011  


Помог: 0 раз(а)




В итоге в какой уже раз решение проблемы было в том, что я что-то забыл указать))
Я уже пробовал с проверкой на отметку чекбокса, но забыл чекбоксам назначить ID, а выборку из DOM делал как раз по ID)

Спасибо за наводку. Проблема решена.
Решил так:
CODE (javascript):
скопировать код в буфер обмена
  1. function hide_show(id)
  2. {
  3.         if(document.getElementById('prof'+id).checked)
  4.         { document.getElementById('abc'+id).style.display = 'block' }
  5.         else
  6.         { document.getElementById('abc'+id).style.display = 'none' }
  7. }
 
 Top
JustUserR
Отправлено: 04 Марта, 2011 - 13:19:37
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




metra пишет:
Но смежный textarea не показывается и только при повторном нажатии (убираем галочку) он показывается
Возможной причиной осуществления возникновения предполагаемого некорректного функционирования флаговых объектов, связанных с обеспечением последовательных выполняемых обратных действий при повторном использовани объекта, может являться использование браузером значения информационного поля во внутреннем уровне элементого трактования, отличного от специфицируемого впоследствии CSS-параметра типа block или none


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« JavaScript & VBScript »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB