Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как снять jquery radio
 
 автор: TanTaL91   (18.03.2011 в 00:09)   письмо автору
 
 

Доброго времени суток уважаемые форумчане. Подскажите пожалуйста как снять кнопку Radio?
У меня в форме много список и много кнопок, хочу что бы человек мог как включить список, так и снять 2роым кликом по радио кнопке ее значение... Заранее огромное спасибо!

  Ответить  
 
 автор: elenaki   (18.03.2011 в 09:50)   письмо автору
 
   для: TanTaL91   (18.03.2011 в 00:09)
 

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

  Ответить  
 
 автор: TanTaL91   (18.03.2011 в 09:56)   письмо автору
 
   для: elenaki   (18.03.2011 в 09:50)
 

Вот этот код ее убирает
            $(this).attr("checked", "checked"); // make checkbox or radio checked
            $(this).removeAttr("checked"); // uncheck the checkbox or radio     

Но я не знаю как активировать этот код только тогда, когда включен радио....

  Ответить  
 
 автор: AlexSol   (18.03.2011 в 10:01)   письмо автору
 
   для: TanTaL91   (18.03.2011 в 09:56)
 

$(this).removeAttr("checked");
уберет все включенные

  Ответить  
 
 автор: TanTaL91   (18.03.2011 в 11:13)   письмо автору
 
   для: AlexSol   (18.03.2011 в 10:01)
 

ага... а как эту строку активировать, только тогда, когда уже включена кнопка радио, и по ней кликают 2рой раз, что бы ее отключить...

  Ответить  
 
 автор: SHAman   (18.03.2011 в 11:14)   письмо автору
 
   для: TanTaL91   (18.03.2011 в 11:13)
 

Я не понял что вы сказали.

  Ответить  
 
 автор: TanTaL91   (18.03.2011 в 11:16)   письмо автору
 
   для: SHAman   (18.03.2011 в 11:14)
 

Допустим, человек кликнул на радио кноку, аджакс ему что то подгрузил, кликнул на другу ему опять что то подгрузилось, а что бы вернуться в исходное положение, на сервер нужно послать пустую переменую, но так что бы человеку было удобно, тобишь он опять кликает на надпись к которой через <label for="whom-номер">текст</label> подключена кнопка кадио, и кнопка деативируется...

  Ответить  
 
 автор: SHAman   (18.03.2011 в 11:43)   письмо автору
 
   для: TanTaL91   (18.03.2011 в 11:16)
 

У меня стойкое впечатление что вы пытаетесь делать что-то используя элементы управления не по назначению. Вы отправляете данные на сервер через выбор радио-кнопок. Вы хотите очищать содержимое чего-то путем деселекта радиокнопки что вообще противоречит природе этой самой радиокнопки.

Было бы проще и лучше если бы вы либо показали что у вас там, чтобы все поняли (не код, а именно ссылку на место, где вы это разрабатываете), либо объяснили что именно вы делаете, а не задачу.

Мне кажется, все это можно решить гораздо проще.

  Ответить  
 
 автор: TanTaL91   (18.03.2011 в 12:13)   письмо автору
 
   для: SHAman   (18.03.2011 в 11:43)
 

Вот так решили проблему на серче.
Но код останавливается... и послать на сервер уже не получается...:(

<script type="text/javascript">
    $(function(){
    $('#for label').click(function()    {
            //убираем активный класс во всех label списка
            $('#for label').removeClass('active');
            $(this).addClass('active');
            //предотвращаем выделение радио-кнопок
            var currentId = $(this).attr('for');
            if ($('#'+currentId).attr('checked') == true)
            {
                $('#'+currentId).removeAttr("checked");
                return false;
            }
        });
    });
</script>
<ul id="for">
           <li><input name="whom" type="radio" value="1" id="whom-1" /> <label for="whom-1">ДЛЯ ВСЕХ</label></li>
           <li><input name="whom" type="radio" value="2" id="whom-2" /> <label for="whom-2">МУЖЧИНАМ</label></li>
           <li><input name="whom" type="radio" value="3" id="whom-3" /> <label for="whom-3">ДЕВУШКАМ</label></li>
           <li><input name="whom" type="radio" value="4" id="whom-4" /> <label for="whom-4">ДЛЯ ДЕТЕЙ</label></li>
</ul>

  Ответить  
 
 автор: AlexSol   (18.03.2011 в 12:35)   письмо автору
 
   для: TanTaL91   (18.03.2011 в 12:13)
 



$(function(){ 
    $('#for label').click(function()    { 
            // снимаем выделение
            var currentId = $(this).attr('for'); 
            if ($('#'+currentId).attr('checked') == true) 
            { 
                $(this).removeClass('active'); 
                $('#'+currentId).removeAttr("checked"); 
            }else{
            // переключение кнопок
                $('#for label').removeClass('active'); 
                $(this).addClass('active'); 
        }); 
    }); 

  Ответить  
 
 автор: TanTaL91   (18.03.2011 в 13:47)   письмо автору
 
   для: AlexSol   (18.03.2011 в 12:35)
 

Не снимает выделеный элемент... :((((


<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
    <style>
    .active{font-weight:bold;}
    </style>
    <script src="http://code.jquery.com/jquery-1.5.js"></script>
    <script type="text/javascript">
    $(function(){
        $('#for label').click(function()    {
                // снимаем выделение
                var currentId = $(this).attr('for');
                if ($('#'+currentId).attr('checked') == true)
                {
                    $(this).removeClass('active');
                    $('#'+currentId).removeAttr("checked");
                }else{
                // переключение кнопок
                    $('#for label').removeClass('active');
                    $(this).addClass('active');
            });
        });
    </script>
</head>

<body>

<ul id="for">
    <li><input name="whom" type="radio" value="1" id="whom-1" /> <label for="whom-1">ДЛЯ ВСЕХ</label></li>
    <li><input name="whom" type="radio" value="2" id="whom-2" /> <label for="whom-2">МУЖЧИНАМ</label></li>
    <li><input name="whom" type="radio" value="3" id="whom-3" /> <label for="whom-3">ДЕВУШКАМ</label></li>
    <li><input name="whom" type="radio" value="4" id="whom-4" /> <label for="whom-4">ДЛЯ ДЕТЕЙ</label></li>
</ul>

</body>
</html>

  Ответить  
 
 автор: AlexSol   (18.03.2011 в 14:38)   письмо автору
 
   для: TanTaL91   (18.03.2011 в 13:47)
 

<html> 
<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1251"> 
    <style> 
    .active{font-weight:bold;} 
    </style> 
    <script src="http://code.jquery.com/jquery-1.5.js"></script> 
    <script type="text/javascript"> 
    $(function(){ 
        $('#for label').click(function()    { 
                // снимаем выделение 
                var currentId = $(this).attr('for'); 
                if ($('#'+currentId).attr('checked') == true) 
                { 
                    $(this).removeClass('active'); 
                    setTimeout("$('#for input').removeAttr('checked');$('#for input').attr('checked',false)", 200);
                }else{ 
                // переключение кнопок 
                    $('#for label').removeClass('active'); 
                    $(this).addClass('active'); 
                    }
            }); 
        }); 
    </script> 
</head> 

<body> 

<ul id="for"> 
    <li><input name="whom" type="radio" value="1" id="whom-1" /> <label for="whom-1">ДЛЯ ВСЕХ</label></li> 
    <li><input name="whom" type="radio" value="2" id="whom-2" /> <label for="whom-2">МУЖЧИНАМ</label></li> 
    <li><input name="whom" type="radio" value="3" id="whom-3" /> <label for="whom-3">ДЕВУШКАМ</label></li> 
    <li><input name="whom" type="radio" value="4" id="whom-4" /> <label for="whom-4">ДЛЯ ДЕТЕЙ</label></li> 
</ul> 

</body> 
</html> 

  Ответить  
 
 автор: TanTaL91   (18.03.2011 в 15:18)   письмо автору
 
   для: AlexSol   (18.03.2011 в 14:38)
 

Всем огромное спасибо за желание помочь. На сервер все ровно попадает не то что нужно, завтро попробую заменить радио чекбоксами, думаю получу нужный результат.

Еще раз всем огромное спасибо!

  Ответить  
 
 автор: SHAman   (18.03.2011 в 15:29)   письмо автору
 
   для: TanTaL91   (18.03.2011 в 15:18)
 

Я практически уверен, что вам не нужно использовать ни чекбоксы, ни радиокнопки.

  Ответить  
 
 автор: TanTaL91   (18.03.2011 в 17:02)   письмо автору
 
   для: SHAman   (18.03.2011 в 15:29)
 

Конечно при желании можно их заменить простыми ID и передавать их значения... но моего запаса знаний не хватит этого сделать, а мне нужно быстрее сделать... время будет, переделаю...

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования