更改jQuery事件()

时间:2010-11-10 10:04:33

标签: jquery onchange

我有一个简单的表格:

    <div class="class_a">
      <fieldset>
        <label><input type="radio" id="radio10" name="color" value="1" />Red</label><br />
        <label><input type="radio" name="color" value="2" />Yellow</label><br />    
        <label><input type="radio" name="color" value="3" />Blue</label><br />
        <label><input type="radio" name="color" value="4" />Purple</label><br />
      </fieldset>
     </div>
 <div class="block-cms">
       <fieldset>
        <label><input type="radio" name="time" value="6" />12</label><br />
        <label><input type="radio" name="time" value="7" />11</label><br />    
        <label><input type="radio" name="time" value="8" />10</label><br />
        <label><input type="radio" name="time" value="9" />9</label><br />
      </fieldset>
 </div>

我在这里尝试做的是使用jQuery change()隐藏第二个字段集。

$("input#radio10").change(function () {
        var checked = true;
        checked = checked && $(this).is(':checked');
        if ($('input#radio10:checked') ) {
            $('.block-cms').show()
            } 
        else {
            $('.block-cms').hide();
        }
    }); 

不确定这里有什么问题。有人可以建议我应该做些什么不同吗?

3 个答案:

答案 0 :(得分:2)

您的id不应该是#,而不是选择器,它应该是id="radio10"

改变这一点,这就是你应该追求的目标:

$(".class_a :radio").change(function () {
  $(".block-cms").toggle($("#radio10:checked").length > 0);
}); 

You can test it out here

答案 1 :(得分:0)

首先,元素上的ID应为radio10而不是#radio10

然后使用此代码

$("input[name='color']").change(function () {
    if ($('input#radio10').is(':checked') ) {
            $('.block-cms').show()
            }
        else {
            $('.block-cms').hide();
        }
    }); 

答案 2 :(得分:0)

这是另一个解决方案(IMO在<input type="radio">上的ID似乎对我来说有点不对):

$("input[name='color']").change(function () {
        if ($(this).val() == 1) {
            $('.block-cms').show()
            } 
        else {
            $('.block-cms').hide();
        }
    });