2013-10-09 4 views
0

У меня есть переключатели, которые просто имеют опции «ДА» и «НЕТ».Почему сценарий jQuery запускается только один раз?

<input name="paperAvailable" type="radio" value="Yes" /> Yes 
<input name="paperAvailable" type="radio" value="No"> No 

Я хочу, чтобы скрыть пару строк таблицы (под именем класса «paperavailable» с JQuery сценария, когда параметр «Нет» выбран, и показать строки еще раз, когда пользователь выбирает «Да»

Каким-то образом, функция только кажется, работать один раз при загрузке страницы. это потому, что я поместил функции в document.ready функции?

$(document).ready(function(){ 

$('.paperavailable').hide(); 


//Paper Available columns 
$("input[name='paperAvailable']").click(function() { 
    if ($("input[name='paperAvailable']").val() == "YES") { 
     $(".paperavailable").show(); 
    } 

    else { 
    $(".paperavailable").hide("slow"); 
     } 

}); 

}); 
+1

Вы скопировали это правильно? Я думаю, что если «ДА» должно быть просто «Да» –

+0

Спасибо @RichardOtvos, который работает для меня сейчас :) – kosherjellyfish

+1

Np, также я думаю, что вы можете прочитать на [.prop()] (http: //api.jquery.com/prop/), поскольку он может быть лучше подходит для этого типа задач, и вы сэкономите некоторое стрижку, зная об этом –

ответ

2

2 проблемы

  1. Сравнение строк чувствительно к регистру - вы имеете значение, установленное в Yes, но в сравнении вы проверяете против YES
  2. $("input[name='paperAvailable']").val() всегда возвращает значение первого элемента ввода с именем paperAvailable, вместо этого вам нужно получить значение проверяемый элемент

вам необходимо проверить проверяемого RADIO ящик

$(document).ready(function() { 
    var $paper = $('.paperavailable').hide(); 
    //Paper Available columns 
    var $radios = $("input[name='paperAvailable']").click(function() { 
     if ($radios.filter(':checked').val() == "Yes") { 
      $paper.show(); 
     } else { 
      $paper.hide("slow"); 
     } 
    }); 
}); 

Демо: Fiddle

+0

. Возможно, стоит отметить, что сравнение строк чувствительно к регистру, поэтому, имея значение «Да» на вашем переключателе и сравнение этого с «YES» никогда не будет оценено как true. –

+0

@ AnthonyGrist исправлено ... замечено позже –

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