2013-04-29 4 views
1

Я искал несколько часов и не смог получить аспект моего кода.Скрыть/показать на основе кнопки радио Нажмите

У меня есть две кнопки-переключатели для div, и я хочу, чтобы это было, если я выберу «Да», он показывает один слайдер, если я выбрал «Нет», он показывает другое.

Ниже .html:

<fieldset data-role="controlgroup"> 
    <legend> 
     <h>Do you like pie?</h> 
    </legend> 
    <input type="radio" name="do-you-like-pie" id="do-you-like-pie-yes" value="do-you-like-pie-yes" checked="checked" /> 
    <label for="do-you-like-pie-yes">Yes</label> 
    <input type="radio" name="do-you-like-pie" id="do-you-like-pie-no" value="do-you-like-pie-no" /> 
    <label for="do-you-like-pie-no">No</label> 
</fieldset> 
<!-- first slider --> 
<div data-role="fieldcontain" class="show-hide-like-pie-no"> 
    <label for="like-pie-yes-slider"> 
     <h>How much?</h> 
    </label> 
    <input type="range" name="like-pie-yes-slider" id="like-pie-yes-slider" value="25" min="0" max="100" data-highlight="true" /> 
</div> 
<!-- 2nd slider --> 
<div data-role="fieldcontain" class="show-hide-like-pie-yes"> 
    <label for="like-pie-no-slider"> 
     <h>How litle?</h> 
    </label> 
    <input type="range" name="like-pie-no-slider" id="like-pie-no-slider" value="100" min="0" max="200" data-highlight="true" /> 
</div> 

Ниже в .js:

function getAuto() { 
    if ($('#do-you-like-pie-yes').is(':checked')) { 
     return true; 
    } else { 
     return false; 
    } 
} 

//$('do-you-like-pie').on('click',function() { 
// if ($('#do-you-like-pie-yes').is(':checked')) { 
if (getAuto() == "true") { 
    $(".show-hide-like-pie-yes").show(); 
    $(".show-hide-like-pie-no").hide(); 
} else { 
    $(".show-hide-like-pie-yes").hide(); 
    $(".show-hide-like-pie-no").show(); 
} 
//}); 

Любая помощь будет принята с благодарностью!

Вот скрипка ссылка: http://jsfiddle.net/DjT5X/

Спасибо!

Уважением,

Gary

редактировать: проблема с другими решениями является то, что они не используют "если"

+0

Итак, у меня есть решение: http://jsfiddle.net/DjT5X/1/ Но должен ли быть способ убрать это? Спасибо – Gary

ответ

0

Fixed - Используется только изменение (функция())

1

getAuto() возвращает логическое значение истина/ложь. В вашем примере вы тест на строку "истинный"

Просто используйте простой, если (getAuto()) вместо

//$('do-you-like-pie').on('click',function() { 
// if ($('#do-you-like-pie-yes').is(':checked')) { 
if (getAuto()) { 
    $(".show-hide-like-pie-yes").show(); 
    $(".show-hide-like-pie-no").hide(); 
} else { 
    $(".show-hide-like-pie-yes").hide(); 
    $(".show-hide-like-pie-no").show(); 
} 
//}); 
+0

Привет, спасибо за ответ. К сожалению, это работает только на «Запуск», при нажатии кнопки оно не изменяется. Надеюсь, что когда я нажму «Да», появится слайдер 1, когда я нажму «Нет», появится слайдер 2. Спасибо. – Gary

1

Sample Например, чтобы скрыть кнопку на кнопке переключателя, нажмите

$(document).ready(function() { 
    $("#do-you-like-pie-yes").click(function() { 
    $(".show-hide-like-pie-no").hide(); 
    }); 
    }); 
Смежные вопросы