单选按钮选择显示/隐藏div由于某种原因不起作用

时间:2014-02-26 23:08:16

标签: javascript php jquery

我试图让div只显示一个单选按钮被选中但它不起作用!当我为它设置一个值但是我希望它在刷新时显示div时它会起作用,所以这个值不适合它。

为什么if ($(this).attr("checked")) {在这里不起作用?

$(document).ready( function() {
    $("#dis_selection").change(function () {
         if( $('#dis_selection').val() == 1) { // if ($(this).attr("checked")) { doesn't work
             $('.hide_dis_slider').show();
          }
          else{
             $('.hide_dis_slider').hide();
          }         
     });
});

单选按钮:

<input type="radio" name="dis" id="dis_selection" value="1" <?php echo $dis_check1; ?>>Local</label>

更新:

 if(isset($_GET['distance']) && $_GET['distance'] === "1"){     
      echo '<li>Local</li>';    
      $dis_check1 = "checked";      
}

在选中复选框之前隐藏的div:

<div class="hide_dis_slider">blabla</div>

1 个答案:

答案 0 :(得分:0)

只有选中取消选中的单选按钮才会触发更改事件。当你单击另一个单选按钮时,你没有“改变”第一个(奇怪的一个)。您可以添加类,因此它将监视所有单选按钮,然后您可以决定在选中/取消选中特定单选按钮时要执行的操作:

$(document).ready(function() {
   $(".dis_selection_rb").change(function () {              
      if($("#dis_selection").is(':checked')) {
         $('.hide_dis_slider').show();
      }else{
         $('.hide_dis_slider').hide();
      }         
   });
});

所以你的HTML会是这样的:

<input type="radio" name="dis" class="dis_selection_rb" id="dis_selection" value="1" checked>Local</label>
<input type="radio" name="dis" class="dis_selection_rb" id="dis_selection2" value="1">Not</label>

<div class="hide_dis_slider">Testing</div>

这个JSFiddle显示它正常工作:http://jsfiddle.net/wSxsp/

请注意,您需要在单选按钮中添加类,因为它们当前看起来没有。