[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Господа, JQuery в действии
m4a1fox
Подскажите, как тут быть.
Вот код

$('#my_form :checkbox').change(function () {
if ($('#my_form :checkbox').attr('checked'))
$('#delete_btn').show();
else
$('#delete_btn').hide();
});

Проблема заключается вот в чем.
Я применяю этот код вот тут

<form id="my_form"><input type="checkbox" id="check" name="id[<?php echo $tpl_id?>]" value="<?php echo $tpl_id?>" /></form>

А это формируется в цикле, допустим 2 поля. При щелчке по первому, скрытый блок появляется, но при нажатии на 2 он не появляется. Как тут быть?



Спустя 12 минут, 4 секунды (29.06.2011 - 12:05) l@pteff написал(а):
Попробуй с фигурными скобками, у меня работает

$('#my_form :checkbox').change(function () {
if ($('#my_form :checkbox').attr('checked')) {
$('#delete_btn').show();}
else
{$('#delete_btn').hide();}
}
);

Спустя 1 минута, 39 секунд (29.06.2011 - 12:07) m4a1fox написал(а):
Нифига не получается. Черт.

Спустя 11 минут, 14 секунд (29.06.2011 - 12:18) johniek_comp написал(а):
фигурные скобки надо
$('#my_form :checkbox').change(function () {
if ($('#my_form :checkbox').attr('checked')) {
$('#delete_btn').show();}
else
{$('#delete_btn').hide();}
}
);


работает

Спустя 2 минуты, 53 секунды (29.06.2011 - 12:21) johniek_comp написал(а):
может не подключил библиотеку? подключал?

Спустя 9 минут, 21 секунда (29.06.2011 - 12:31) m4a1fox написал(а):
johniek_comp
Ну коли первый выделяется то подключил!

Спустя 1 минута, 43 секунды (29.06.2011 - 12:32) m4a1fox написал(а):
Подключил вот отсюда http://code.jquery.com/jquery-1.6.1.min.j. Библиотека - Minified.

Спустя 10 минут, 20 секунд (29.06.2011 - 12:43) m4a1fox написал(а):
Так что господа? Я тут просто методом эксперемента делаю.... Блин - печалька получается sad.gif

Спустя 5 минут, 24 секунды (29.06.2011 - 12:48) Invis1ble написал(а):
m4a1fox
id должен быть уникален, используй class
И еще, не вижу у тебя элемента с id = delete_btn
вобщем покажи код с несколькими блоками и delete_btn

Спустя 2 минуты, 59 секунд (29.06.2011 - 12:51) m4a1fox написал(а):
Invis1ble
Так он то собственно и уникален))) А через класс как получается. Кстати, собственно исходник html по коду.

<input type="checkbox" id="check" name="id[10]" value="10" /> - это 1
<input type="checkbox" id="check" name="id[9]" value="9" /> - это 2
<input type="checkbox" id="check" name="id[3]" value="3" /> - это 3


Это все выходит через цикл!

Спустя 5 минут, 29 секунд (29.06.2011 - 12:56) Invis1ble написал(а):
m4a1fox
во всех трех чекбоксах все id одинаковые => неуникальные
и ты так и не показал delete_btn

Спустя 3 минуты, 36 секунд (29.06.2011 - 13:00) mxwuser написал(а):
id - Должен быть всего у 1 элемента на странице. Поставь им класс одинаковый, и пропиши его в скрипте, и все будет ок. А так он берет только первый элемент с идентификатором, а остальные игнорит.

Спустя 6 минут, 12 секунд (29.06.2011 - 13:06) Invis1ble написал(а):
примерно так:
<input type="checkbox" class="check" name="id[10]" value="10" />
<input
type="checkbox" class="check" name="id[9]" value="9" />
<input
type="checkbox" class="check" name="id[3]" value="3" />

    $('.check').change(function () {
if ($(this).attr('checked'))
$('#delete_btn').show();
else
$('#delete_btn').hide();
})

Кстати, фигурные скобки для однострочных блоков необязательны

Спустя 59 секунд (29.06.2011 - 13:07) m4a1fox написал(а):
Собственно вот так сделал

$('#my_form :checkbox').change(function () {
if ($('.check :checkbox').attr('checked')) {
$('#delete_btn').show();}
else
{$('#delete_btn').hide();}
}
);

А вот тут вывод

<div id="my_form">
<input
type="checkbox" class="check" name="id[<?php echo $tpl_id?>]" value="<?php echo $tpl_id?>" />
</div>


Что не так.... поправите?

Спустя 47 секунд (29.06.2011 - 13:08) m4a1fox написал(а):
Invis1ble
Спасибо! Теперь разобрался! Буду курить маны! Спс еще раз!

Спустя 1 минута, 36 секунд (29.06.2011 - 13:10) Invis1ble написал(а):
m4a1fox
$('.check :checkbox') - так ты получаешь коллекцию элементов. Глянь отличие в моем коде

Спустя 2 минуты, 57 секунд (29.06.2011 - 13:13) Invis1ble написал(а):
Цитата
if ($(this).attr('checked'))

вообще, меня чесно говоря немного смущает такое условие. Работает мой код или нет?

Спустя 4 минуты, 38 секунд (29.06.2011 - 13:17) m4a1fox написал(а):
Invis1ble
Да работает! Еще один вариант более большой

$('.my_form :checkbox').click(function(){
if($('.my_form :checkbox:not([name=all]):checked').length==$('.my_form :checkbox:not([name=all])').length) {
$('[name=all]').attr('checked','checked');
all_checked = 1;
}
else {
$('[name=all]').attr('checked','');
all_checked = 0;
}

if($('.my_form :checkbox:not([name=all]):checked').length>0) {
$('#delete_btn').show();
$('#cut_btn').show();
}
else {
$('#delete_btn').hide();
$('#cut_btn').hide();
}
}
);

У него есть один плюс. Если поставть вверху еще один checkbox, то при его выделении, выделяются все checkbox'ы.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.