Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 30.04.2014, 12:50
Аспирант
Отправить личное сообщение для piraids Посмотреть профиль Найти все сообщения от piraids
 
Регистрация: 20.08.2013
Сообщений: 88

после выбора 2х input:radio отображать кнопку
Подскажите как отображать кнопку, при условии что выбрано значение в первой группе input:radio и во второй группе input:radio

вот как мне это объединить?
var $a = $('input[id^=type_]');
var $b = $('input[id^=deliv_]');
var $show_a = '0';
var $show_b = '0';
$a.change(function(){ $show_a = '1'; })
$b.change(function(){ $show_b = '1'; })


чтобы я мог воспользоватся примерно такой конструкцией:
if($show_a.length && $show_b.length){ $('#orderbut').show(); }


или как сделать правильно?
Ответить с цитированием
  #2 (permalink)  
Старый 30.04.2014, 13:43
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

piraids,

<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  #orderbut{
    display: none;
  }

  </style>
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
  <script>
   $(function ()
{

var $a = $('input[id^=type_]'),
    $b = $('input[id^=deliv_]'),
    show = function(){
       if($a.is(":checked") && $b.is(":checked")){ $('#orderbut').show()}} ;
$a.change(show)
$b.change(show)

})
  </script>
</head>

<body>
  <input id="type_1" name="one" type="radio">
  <input id="type_2" name="one" type="radio">
  <input id="type_3" name="one" type="radio">
  <br>
  <input id="deliv_1" name="two" type="radio">
  <input id="deliv_2" name="two" type="radio">
  <input id="deliv_3" name="two" type="radio">
  <div id="orderbut">
	ok
</div>

</body>

</html>
Ответить с цитированием
  #3 (permalink)  
Старый 30.04.2014, 14:01
Аспирант
Отправить личное сообщение для piraids Посмотреть профиль Найти все сообщения от piraids
 
Регистрация: 20.08.2013
Сообщений: 88

рони,
спасибо большое!! буду знать)
Ответить с цитированием
  #4 (permalink)  
Старый 30.04.2014, 14:38
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

<style type="text/css">
  #orderbut {
    display: none;
  }
  input[name="one"]:checked ~ input[name="two"]:checked ~ #orderbut {
    display: block;
  }
</style>
<input id="type_1" name="one" type="radio">
  <input id="type_2" name="one" type="radio">
  <input id="type_3" name="one" type="radio">
  <br>
  <input id="deliv_1" name="two" type="radio">
  <input id="deliv_2" name="two" type="radio">
  <input id="deliv_3" name="two" type="radio">
  <div id="orderbut">
    ok
</div>
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #5 (permalink)  
Старый 05.05.2014, 17:29
Аспирант
Отправить личное сообщение для piraids Посмотреть профиль Найти все сообщения от piraids
 
Регистрация: 20.08.2013
Сообщений: 88

рони,
а если у меня еще появляется блок тоже с input radio в зависимости от уровня доступа, как включить его в проверку? Если я сделаю вот так, как я написал ниже - это будет правильно? или есть какой то более легкий вариант?

<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  #orderbut{
    display: none;
  }

  </style>
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
  <script>
   $(function ()
{

var $a = $('input[id^=type_]'),
    $b = $('input[id^=deliv_]'),
    $c = $('input[id^=info_]');

if($c.length){
  var show = function(){
      if($a.is(":checked") && $b.is(":checked") && $c.is(":checked")){ $('#orderbut').show()}} ;

  $a.change(show);
  $b.change(show);
  $c.change(show);
}else{
  var show = function(){
       if($a.is(":checked") && $b.is(":checked")){ $('#orderbut').show()}} ;
  $a.change(show);
  $b.change(show);
}
})
  </script>
</head>

<body>
  <input id="type_1" name="one" type="radio">
  <input id="type_2" name="one" type="radio">
  <input id="type_3" name="one" type="radio">
  <br>
  <input id="deliv_1" name="two" type="radio">
  <input id="deliv_2" name="two" type="radio">
  <input id="deliv_3" name="two" type="radio">
  <br>
  <input id="info_1" name="three" type="radio">
  <input id="info_2" name="three" type="radio">
  <input id="info_3" name="three" type="radio">
  <div id="orderbut">
	ok
</div>

</body>

</html>

Последний раз редактировалось piraids, 06.05.2014 в 09:18.
Ответить с цитированием
  #6 (permalink)  
Старый 05.05.2014, 20:44
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

piraids,
в 29 строке ничего не пропустили?
Ответить с цитированием
  #7 (permalink)  
Старый 06.05.2014, 09:18
Аспирант
Отправить личное сообщение для piraids Посмотреть профиль Найти все сообщения от piraids
 
Регистрация: 20.08.2013
Сообщений: 88

рони,
да, поправил)
Ответить с цитированием
  #8 (permalink)  
Старый 06.05.2014, 11:08
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

piraids,
вариант ... в массиве можно указать любое количество селекторов зависимых input -- будут задействованы только существующие;
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  #orderbut{
    display: none;
  }
  </style>
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
  <script>
   $(function ()
{
var arr = ['input[id^=type_]','input[id^=deliv_]','input[id^=info_]'];
(function (c) {
    var show = function () {
        for (var a = 0; a < c.length; a++) {
            var b = $(c[a]);
            if (b.length && !b.is(":checked") ) return false
        }
        $("#orderbut").show()
    };
    $.each(c, function (a, b) {
        $(b).change(show)
    })
})(arr);
})
  </script>
</head>

<body>
  <input id="type_1" name="one" type="radio">
  <input id="type_2" name="one" type="radio">
  <input id="type_3" name="one" type="radio">
  <br>
  <input id="deliv_1" name="two" type="radio">
  <input id="deliv_2" name="two" type="radio">
  <input id="deliv_3" name="two" type="radio">
  <br>
  <input id="info_1" name="three" type="radio">
  <input id="info_2" name="three" type="radio">
  <input id="info_3" name="three" type="radio">
  <div id="orderbut">
	ok
</div>

</body>

</html>

Последний раз редактировалось рони, 06.05.2014 в 11:10.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Смена цены после выбора radio кнопки витослав jQuery 4 28.11.2013 21:29
Скрипт для рандомного показа текста после нажатия на кнопку. Светлана777 Общие вопросы Javascript 0 25.11.2012 00:08
ищу DatePicker с временем, списком выбора месяца и возможностью смены месяца после вы Kri0-Gen jQuery 3 10.07.2012 16:07
Добавить кнопку после каждой ссылки… exec jQuery 0 21.01.2010 18:18
Не убирать кнопку после клика по ней. CompModdd jQuery 2 12.05.2009 02:13