2015-09-10 4 views
1

У меня есть форма, в которой мне нужно показывать только определенные параметры, основанные на выборе переключателей вверху. По какой-то причине он работает неправильно. Есть идеи? Ниже приведен jsfiddle. Пожалуйста, дайте мне знать, если это потребует дальнейшего объяснения, и спасибо!Показать поля формы на основе выбора переключателя

http://jsfiddle.net/jmL7w2ed/

$('#choose-one').change(function() { 
    if ($('#choose-one:checked').val() == 'Sold') { 
     $('.resultDetail').hide(); 
     $('.resultDetail.sold').show(); 
    } else if ($('#choose-one:checked').val() == 'Not Demoed') { 
     $('.resultDetail').hide(); 
     $('.resultDetail.notDemoed').show(); 
    } else if ($('#choose-one:checked').val() == 'Not Sold') { 
     $('.resultDetail').hide(); 
     $('.resultDetail.notSold').show(); 
    } 
}); 

ответ

2

Ваш выбор основан на ID, так что всегда выбирают первый радиоприемник.

Лучше выбирать радиостанции в зависимости от их имени следующим образом:

$('input[type=radio][name=choose-one]')

и вы можете получить доступ к значению, используя $(this).val() вместо выбора набора снова.

$('input[type=radio][name=choose-one]').change(function() { 
     //console.log($(this).val()); 

     var value = $(this).val(); 

     if (value == 'Sold') { 
      $('.resultDetail').slideUp('500'); 
      $('.resultDetail.sold').slideDown('500'); 
     } else if (value == 'Not Demoed') { 
      $('.resultDetail').slideUp('500'); 
      $('.resultDetail.notDemoed').slideDown('500'); 
     } else if (value == 'Not Sold') { 
      $('.resultDetail').slideUp('500'); 
      $('.resultDetail.notSold').slideDown('500'); 
     } else if (value == 'Demoed') { 
      $('.resultDetail').slideUp('500'); 
      $('.resultDetail.notSold').slideDown('500'); 
     } 
    }); 

Вот Working Fiddle

+0

Ahhhhh .... это именно то, что я искал. Спасибо! – cameron

+1

Добро пожаловать, чувак. – KAD

1

Я обновил свой скрипку следующее:

$('.resultDetail').hide(); 
    $('#choose-one').on('change',function() { 
     if ($('#choose-one:checked').val() == 'Sold') { 
      $('.resultDetail').slideUp('500'); 
      $('.resultDetail.sold').slideDown('500'); 
     } else if ($('#choose-one:checked').val() == 'Not Demoed') { 
      $('.resultDetail').slideUp('500'); 
      $('.resultDetail.notDemoed').slideDown('500'); 
     } else if ($('#choose-one:checked').val() == 'Not Sold') { 
      $('.resultDetail').slideUp('500'); 
      $('.resultDetail.notSold').slideDown('500'); 
     } else if ($('#choose-one:checked').val() == 'Demoed') { 
      $('.resultDetail').slideUp('500'); 
      $('.resultDetail.notSold').slideDown('500'); 
     } 
    }); 

Самая важная часть была в том числе JQuery, который не был добавлен в ваш скрипку. Убедитесь, что вы включили jQuery.

See your updated fiddle

+0

Хммм ... Я добавил, но не должны быть сохранены должным образом. Благодарю. – cameron

+0

Это не решение. Разделы не сдвигаются вверх и вниз по радиоприемнику. – KAD

+0

Он по-прежнему не работает правильно. Выполняется только первый вариант («Продано»). Если вы выберете любой из других вариантов, они вообще не работают. Есть 3 разных «Детали результата», которые выбирают меню, и они должны отображаться/скрываться в зависимости от текущего значения в переключателях. – cameron

Смежные вопросы