为什么我的jQuery脚本只运行一次?

时间:2013-10-09 08:53:27

标签: jquery

我有单选按钮,只有“是”和“否”作为选项。

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

我希望隐藏几个表行(当选择“No”选项时,使用jQuery脚本在类名'paperavailable'下),并在用户选择“是”时再次显示行

不知何故,该函数似乎只在页面加载时工作一次。是因为我将函数放在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 :(得分:2)

2个问题

  1. 字符串比较区分大小写 - 您将值设置为Yes,但相比之下,您正在针对YES进行测试
  2. $("input[name='paperAvailable']").val()将始终返回名为paperAvailable的第一个输入元素的值,而您需要获取已检查元素的值
  3. 您需要测试选中的收音机框

    $(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