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
Форумы портала PHP.SU :: Версия для печати :: JQuery: заблокирован checkbox при show/hide
Форумы портала PHP.SU » Клиентская разработка » JavaScript & VBScript » JQuery: заблокирован checkbox при show/hide

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

1. proglive - 30 Мая, 2012 - 07:44:20 - перейти к сообщению
Может кто сталкивался с данной проблемой. Помогите разобраться.
Блокируется checkbox при такой комбинации команд.
toggle('slow') - т.е. идет смена команд show/hide.
Если checkbox вне действия этой команды, то все нормально.
Ниже привден код.



CODE (html):
скопировать код в буфер обмена
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
  2. <html>
  3.   <head>
  4.     <title>Collapsible List &mdash; Take 3</title>
  5.     <link rel="stylesheet" type="text/css" href="../common.css">
  6.     <script type="text/javascript"
  7.            src="../scripts/jquery-1.2.1.js"></script>
  8.     <script type="text/javascript">
  9.    
  10.    $(function(){
  11.         $('li:has(ul)')
  12.           .click(function(event){
  13.             if (this == event.target) {
  14.               $(this).css('list-style-image',
  15.                 (!$(this).children().is(':hidden')) ?
  16.                   'url(plus.gif)' : 'url(minus.gif)');
  17.               $(this).children().not('input').toggle('slow');
  18.                          
  19.             }
  20.             return false;
  21.           })
  22.           .css({cursor:'pointer',
  23.                 'list-style-image':'url(plus.gif)'})
  24.           .children().hide();
  25.         $('li:not(:has(ul))').css({
  26.           cursor: 'default',
  27.           'list-style-image':'none'
  28.         });
  29.       });
  30.     </script>
  31.     <style>
  32.       fieldset { width: 320px }
  33.     </style>
  34.   </head>
  35.   <body>
  36.   <form>
  37.     <fieldset>
  38.       <legend>Collapsible List &mdash; Take 3</legend>
  39.           <form>
  40.       <ul>
  41.         <li>Item 1</li>
  42.         <li>Item 2</li>
  43.                 <input type="checkbox" value="crop" name="crop" id="rest1" />
  44.         <li>
  45.           Item 3
  46.           <ul>
  47.                         <input type="checkbox" value="crop" name="crop" id="rest1" />
  48.             <li>Item 3.1</li>
  49.             <li>
  50.               Item 3.2
  51.               <ul>
  52.                 <li>Item 3.2.1</li>
  53.                 <li>Item 3.2.2</li>
  54.                 <li>Item 3.2.3</li>
  55.               </ul>
  56.             </li>
  57.             <li>Item 3.3</li>
  58.           </ul>
  59.         </li>
  60.         <li>
  61.           Item 4
  62.           <ul>
  63.             <li>Item 4.1</li>
  64.             <li>
  65.               Item 4.2
  66.               <ul>
  67.                 <li>Item 4.2.1</li>
  68.                 <li>Item 4.2.2</li>
  69.               </ul>
  70.             </li>
  71.           </ul>
  72.         </li>
  73.         <li>Item 5</li>
  74.       </ul>
  75.           </form>
  76.     </fieldset>
  77.         </form>
  78.   </body>
  79. </html>
2. Viper - 30 Мая, 2012 - 09:05:27 - перейти к сообщению
1. Обновите jquery
2. Структура документа у вас не валидная.
Запрещено использовать вложенные формы. input нельзя использовать вне <li> если он должен быть в списке.
Т.е.

CODE (html):
скопировать код в буфер обмена
  1. <ul>
  2. <input ... />
  3. <li>Blabla</li>
  4. ...

Неправильно!
3. proglive - 30 Мая, 2012 - 10:04:25 - перейти к сообщению
Спасибо за оперативность. Прошу прощения за сумбурно изложенный вопрос - уже вторые сутки с этим мучаюсь, поэтому в голове каша. Попутно еще JQuery осваиваю. Короче, простите и строго не судите.
Версию обновила.
Так что же можно сделать, если checkbox должен быть в ul второго вложения? Переделывать верстку всей страницы без ul?
Примерно вот это имеется:
4. tuareg - 30 Мая, 2012 - 10:17:34 - перейти к сообщению
Nataly_by пишет:

Так что же можно сделать, если checkbox должен быть в ul второго вложения? Переделывать верстку всей страницы без ul?

Добавить li а в него вложить checkbox
5. proglive - 30 Мая, 2012 - 10:19:48 - перейти к сообщению
все равно не работает

<form method="post" action="hjg.php">
<ul>
<li>Item 1</li>
<li>Item 2</li>
<input type="checkbox" value="crop" name="crop" />
<li>
Item 3
<ul>
<li><input type="checkbox" value="crop" name="crop" /></li>
<li>Item 3.1</li>
</ul>
</li>
<li>Item 5</li>
</form>
</ul>
</form>
(Добавление)
наверное дело в Jquery. Если его отключить, то чекбоксы разблокируются. Это недоработка в модуле Jquery какая-то?
6. Viper - 30 Мая, 2012 - 11:46:05 - перейти к сообщению
Странно что только у вас они блокируются.
Может быть вам подойдет https://github[dot]com/akuzemchak/collapsorz дабы не изобретать велосипед?
7. proglive - 31 Мая, 2012 - 12:10:38 - перейти к сообщению
посмотрите, пожалуйста, прикрепленный архив (я собрала все, чтоб сохранить нужную картинку). Может кто-то сталкивался с аналогичной проблемой, и подскажет, как решить ее. Заблокированный checkbox в изначально скрытом пункте 3. Может какие идеи у кого возникнут, почему так получилось.
8. Viper - 31 Мая, 2012 - 12:52:51 - перейти к сообщению
Nataly_by return false; уберите.
9. proglive - 31 Мая, 2012 - 16:59:07 - перейти к сообщению
УРА!!!! Все работает чудным образом. Спасибо Вам огромное. Спасибо!!!!

 

Powered by ExBB FM 1.0 RC1