Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 24.08.2013, 01:04
Аспирант
Отправить личное сообщение для bartonom Посмотреть профиль Найти все сообщения от bartonom
 
Регистрация: 05.05.2011
Сообщений: 48

Проблема с кликом по checkbox
Подскажите, пожалуйста, как решить проблему работы клика по чекбоксу с id='checkbox_all'.
Первый клик - все чекбоксы с class='current' помечаются (как и ожидалось), Второй клик - снимает с них галочки.
А третий и последующий клики не срабатывают. Что неправильно?

<?php header('Content-type: text/html; charset=utf-8');  ?>

<script type="text/javascript" src="jquery-1.10.2.js"></script> 
<script type="text/javascript" src="example.js"></script>        
<input type='checkbox' name='all' id='checkbox_all' /> <br /><br /><br />

<?php 
$total=3;
for ($i = 0; $i < $total; $i++) {   ?>      
 <input type='checkbox' class='current' name='<?php echo "checkBox[".$i."]" ?>' id = '<?php echo $i; ?>'  value='' /><br />
<?php } ?>


$(document).ready(function(){

 $('#checkbox_all').click(function(event) { 
//   event.preventDefault();
   $all = $(this);
   if ($all.attr('checked')) {
      $('.current').removeAttr('checked');
   } else {
      $('.current').attr('checked','checked');			
      $all.attr('checked','checked');			
   } 
 });
});


В дополнение: вставка
alert('да 0 = '+$all.attr('checked'));
показывает что
$all.attr('checked') ='checked'
, срабатывает событие по умолчанию для клика по чекбоксу. Но как с эти бороться, не придумал, хотя пытался вставить
event.preventDefault();

Вставка после else 
} else {
      $('.current').attr('checked','checked');			
 	  alert('да 0 = '+$all.attr('checked'));


Извиняюсь, еще одно дополнение. Реализация кода ниже вроде сняла проблему
$(document).ready(function(){
 $('#checkbox_all').click(function() { 
   $all = $(this);
   if ($all.attr('checked')) {
      $('.current').removeAttr('checked');
      $all.removeAttr('checked');
   } else {
      $('.current').attr('checked','checked');			
      $all.attr('checked','checked');			
   } 
 });
});

Вроде потому что работает только в IE. В Google Chrom, Opera, Mozilla не срабатывает. Подсказка все-таки желательна.

Последний раз редактировалось bartonom, 24.08.2013 в 02:15. Причина: Дополнение
Ответить с цитированием
  #2 (permalink)  
Старый 24.08.2013, 10:20
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

а теперь собери всё в один тестовый пример и добавь возможность запуска [html run]
php-вывод убрать
jquery подключать не со своего компьютера
Ответить с цитированием
  #3 (permalink)  
Старый 24.08.2013, 12:25
Аспирант
Отправить личное сообщение для bartonom Посмотреть профиль Найти все сообщения от bartonom
 
Регистрация: 05.05.2011
Сообщений: 48

Сообщение от bes Посмотреть сообщение
а теперь собери всё в один тестовый пример и добавь возможность запуска [html run]
php-вывод убрать
jquery подключать не со своего компьютера
Из предложенного смог реализовать только подключение jquery не со своего компьютера, остальное мне непонятно к сожалению
Ответить с цитированием
  #4 (permalink)  
Старый 24.08.2013, 12:41
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,121

Сообщение от bartonom
остальное мне непонятно к сожалению
Пройдись по свежим темам - там много вариантов с полными тестовыми примерами...
Ответить с цитированием
  #5 (permalink)  
Старый 24.08.2013, 12:54
Аспирант
Отправить личное сообщение для bartonom Посмотреть профиль Найти все сообщения от bartonom
 
Регистрация: 05.05.2011
Сообщений: 48

Сообщение от ksa Посмотреть сообщение
... там много вариантов с полными тестовыми примерами...
Хорошо, попробую
Ответить с цитированием
  #6 (permalink)  
Старый 24.08.2013, 13:06
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

заключить весь код в [ html run] без первого пробела и [/html] , чё непонятного, php-вывод тут тоже не сработает, поэтому не нужен, замени тем, что получается в итоге
Ответить с цитированием
  #7 (permalink)  
Старый 24.08.2013, 14:07
Аспирант
Отправить личное сообщение для bartonom Посмотреть профиль Найти все сообщения от bartonom
 
Регистрация: 05.05.2011
Сообщений: 48

Сообщение от bes Посмотреть сообщение
заключить весь код в [ html run] без первого пробела и [/html] , чё непонятного, php-вывод тут тоже не сработает, поэтому не нужен, замени тем, что получается в итоге
Ну заменил, и ничего, кроме вывода этих [ html run] и [/html] вокруг чекбоксов не изменилось.
Смысл то в чем? Первый пробел убрал.
[ html run]
 <script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script> 
 <script type="text/javascript" src="example.js"></script>        
 <input type='checkbox' name='all' id='checkbox_all' /> <br /><br />
 <input type='checkbox' class='current' name='checkBox[0]' id = '0'  value='' /><br />
 <input type='checkbox' class='current' name='checkBox[1]' id = '1'  value='' /><br />
 <input type='checkbox' class='current' name='checkBox[0]' id = '2'  value='' /><br />
[ /html]
Ответить с цитированием
  #8 (permalink)  
Старый 24.08.2013, 15:35
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

bartonom,
то что далее это вас просили сделать ну и решение вашей проблемы
<!DOCTYPE HTML>
<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>
 <script>
 $(document).ready(function(){
 $('#checkbox_all').click(function(event) {
  $('.current').prop('checked', $(this).prop('checked'))
 });
});
</script>
</head>

<body>

 <input type='checkbox' name='all' id='checkbox_all' /> <br /><br />
 <input type='checkbox' class='current' name='checkBox[0]' id = '0'  value='' /><br />
 <input type='checkbox' class='current' name='checkBox[1]' id = '1'  value='' /><br />
 <input type='checkbox' class='current' name='checkBox[0]' id = '2'  value='' /><br />
</body>

</html>
Ответить с цитированием
  #9 (permalink)  
Старый 24.08.2013, 16:11
Аспирант
Отправить личное сообщение для bartonom Посмотреть профиль Найти все сообщения от bartonom
 
Регистрация: 05.05.2011
Сообщений: 48

Сообщение от рони
ну и решение вашей проблемы
Спасибо большое, все работает. Решение на js было, но хотелось с jquery.

PS. Нажал на плюс в карму, но на единицу уменьшилось (изв.) Научите как карму правильно кликать.

Последний раз редактировалось bartonom, 24.08.2013 в 16:16.
Ответить с цитированием
  #10 (permalink)  
Старый 24.08.2013, 18:05
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

Сообщение от bartonom
Ну заменил, и ничего, кроме вывода этих [ html run] и [/html] вокруг чекбоксов не изменилось.
Сообщение от bes
[ html run] без первого пробела
то есть [html run]

Сообщение от bartonom
Нажал на плюс в карму, но на единицу уменьшилось (изв.) Научите как карму правильно кликать.
ну если действительно уменьшилось, то это к Илье, в профиле показывает, что увеличилось
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выбор checkbox скриптом. Проблема при отправке формы. ByKraB jQuery 5 07.04.2013 19:43
checkbox = checkbox Слейп jQuery 2 30.01.2013 15:24
Как выделить нужные checkbox одним кликом? MCB Общие вопросы Javascript 7 11.03.2012 22:27
Функция disable для нескольких checkbox allforweb Элементы интерфейса 4 19.12.2010 17:51
Проблема с checkbox Zuko Общие вопросы Javascript 3 05.10.2010 18:55