Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   только 1 отмеченый checkbox (https://javascript.ru/forum/jquery/21696-tolko-1-otmechenyjj-checkbox.html)

zaqwer 20.09.2011 17:56

только 1 отмеченый checkbox
 
на форме есть разные checkboxы и их много. как сделать так, чтоб была возможность выбора только 1 чекбокса (в которых имя pok1,pok2,...), при выборе следуещего, снималась галка с отмеченого?
примерный код onclick чекбокса:

function ces()
{
var k = $(this).is(':checked')
elements=$('input[name^="pok"]');
var len=elements.size();
for (index=0;index<len;index++)
{
elements.eq(index).attr('checked',false);
};
$(this).attr('checked', k)
}


первое сохранил состояние текущего чекбокса, потом сбросил у всех что надо, потом установил предыдущее состояние?
блин.. может просто в массив $('input[name^="pok"]'); прописать .not('input[имя]')? только не знаю как имя получить в jquery

спасибо..

walik 20.09.2011 18:10

Кажись для этого и придумали radio

zaqwer 20.09.2011 18:22

а по сабжу?...

Kolyaj 20.09.2011 18:25

zaqwer,
если вы чего-то не поняли, это не значит, что вам ответили не по сабжу. Это значит только то, что вы чего-то не поняли. А если вы чего-то не поняли, так и спрашивайте, что именно не поняли, а не делайте умный вид со словами "а по сабжу?".

zaqwer 20.09.2011 18:42

Kolyaj,
пожалуйста.. не тролите..
я написал в первом посте, что мне непонятно и прошу, если у кого-то будет желание и возможность, то посоветуйте как выйти с ситуации, не изменяя постановки?

Vulkan 20.09.2011 18:54

zaqwer,
смотрите тут тип radio - Атрибут type

zaqwer 20.09.2011 19:10

Vulkan, спасибо
может знаете как сделать, чтоб выделение снималось с остальных чекбоксов и ставилось на выбраном чекбоксе?

Kolyaj 20.09.2011 22:14

Цитата:

Сообщение от zaqwer
может знаете как сделать, чтоб выделение снималось с остальных чекбоксов и ставилось на выбраном чекбоксе?

Вам уже два раза сказали: использовать не type=checkbox, а type=radio.

Александр х@к 20.09.2011 22:33

Например:
<!DOCTYPE HTML><html>
<body>
 <input type="radio" name="boy"/><option value="1">мужской</option>
 <input type="radio" name="boyl"/><option value="2">женский</option>
</body>
</html>

name должно быть одинаково для всех
option value -- разным.

Привел пример, догадаешься, что Мужской и женский надо менять на нужные слова

zaqwer 21.09.2011 10:34

сколько вам раз сказать, чтоб поняли? мне надо чекбоксы!
не реально? или вы не знаете?

Black_Prince 21.09.2011 11:02

Человек, ты вообще читаешь что тебе советуют?
то что ты просишь - называется быдлокодингом... не верб что нельзя поменять типы с чекбоксов на радио. Но фиг с тобой золотая рыбка - вот тебе код:

вот тебе чекбоксы
<input type="checkbox" name="a" value="1"/>1<br/>
        <input type="checkbox" name="a" value="2"/>2<br/>
        <input type="checkbox" name="a" value="3"/>3<br/>
        <input type="checkbox" name="a" value="4"/>4<br/>
        <input type="checkbox" name="a" value="5"/>5<br/>
        <input type="checkbox" name="a" value="6"/>6<br/>


вот тебе хрень, которая выбирает только 1 чекбокс. Работает так же как и радиобаттоны.
$(document).ready(function(){
                $('input[name=a]').change(function(){
                    $('input[name=a]').attr('checked', '');
                    $(this).attr('checked', 'true');
                })
            })

zaqwer 04.10.2011 23:36

Цитата:

Сообщение от Black_Prince (Сообщение 127468)
вот тебе хрень, которая выбирает только 1 чекбокс

действительно хрень )
мой вариант лучше )
Код:

$("input[type=checkbox][name^=n]").bind('change', function(){
			$("input[type=checkbox][name^=n]").not($(this)).attr('checked',false);		
							})

минимум потому что работает быстрее
:p

zebra 05.10.2011 03:28

Работает быстрее, но с ошибкой :)

kostr 05.10.2011 23:15

$(function(){
 $('input[type=checkbox]').change(function() {
  if (this.checked) {
   var check = $("input[type=checkbox]");
   for (var i = 0; i < check.length; i++)
    if (check[i] != this)
      check[i].checked = false;
  }
 });
});

melky 05.10.2011 23:57

нафиг циклы? запоминайте последний чекбокс и все дела.
<input type="checkbox" name="a" value="1"/>1<br/>
        <input type="checkbox" name="a" value="2"/>2<br/>
        <input type="checkbox" name="a" value="3"/>3<br/>
        <input type="checkbox" name="a" value="4"/>4<br/>
        <input type="checkbox" name="a" value="5"/>5<br/>
        <input type="checkbox" name="a" value="6"/>6<br/>

<script>
var last={}, ie=/*@cc_on@*/0;

document.body.onclick=function(e){
    e=ie?event.scrElement:e.target;
    if(e.name!="a"&&e.type!="checkbox") return;
    last.checked=false;
    e.checked=true;
    last=e;
}
</script>


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