我试图让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>
答案 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/
请注意,您需要在单选按钮中添加类,因为它们当前看起来没有。