2015-11-05 103 views
-1

我的代码有一个javascript,允许在选中输入括号时显示下拉列表,当我解开输入括号时,它不会隐藏显示的下拉列表。如果这与其他帖子相同,但他们不适合我。取消选中隐藏

下面的代码

<input type="checkbox" class="ba" name="ab" <?php if (isset($ab) && $ab=="20") echo "checked";?> value="20">20s 
<br> 
<input type="checkbox" class="ba" name="ab" <?php if (isset($ab) && $ab=="30") echo "checked";?> value="30">30s 
<br> 
<input type="checkbox" class="ba" name="ab" <?php if (isset($ab) && $ab=="40") echo "checked";?> value="40">40s        
<br> 
<input type="checkbox" class="ba" name="ab" <?php if (isset($ab) && $ab=="50") echo "checked";?> value="50">50s        
<br> 
<input type="checkbox" class="ba" name="ab" <?php if (isset($ru) && $ru=="all") echo "checked";?> value="All" onClick="toggle3(this)">All Ages 
<br> 
<script src="assets/js/jquery.min.js"></script> 
<input type="checkbox" class="ba" name="ib" id="bracket" value="All">Input Bracket 
<br> 
<div id='input-bracket'> 
<select name="sab" class="req" id="age-range" style="width:50px; height:30px;" autocomplete="off" required/> </select> - 
<select name="sab" class="req" id="second" style="width:50px; height:30px;" autocomplete="off" required/> </select></div> 

$(document).ready(function() { 

$("#input-bracket").hide(); 
$("input[class=ba]").click(function() { 
    if ($(this).attr("id") == "bracket") { 
     $("#input-bracket").show(); 
    } else { 
     $("#input-bracket").hide(); 
    } 
    }); 
}); 
+0

它为什么要隐藏它?该逻辑表示在刚才描述的场景中显示它。 – Marc

回答

2

不用手动搞清楚何时显示或隐藏元素让jQuery的为你做它用它的 '切换' API http://api.jquery.com/toggle/

$(document).ready(function() { 

$("#input-bracket").hide(); 
$("input[class=ba]").click(function() { 
    $("#input-bracket").toggle(); 
    }); 
}); 
+0

当我检查另一个它也显示输入支架:( – Vista

+0

噢好吧我想通了,我需要从其他复选框中删除class =“ba”,谢谢! – Vista

0

$(document).ready(function() { 
 

 
    $("#input-bracket").hide(); 
 
    $("#bracket").click(function() { 
 
    if ($("#input-bracket").is(":visible")) { 
 
     $("#input-bracket").hide(); 
 
    } else { 
 
     $("#input-bracket").show(); 
 
    } 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 

 
<input type="checkbox" class="ba" name="ab" value="20">20s 
 
<br> 
 
<input type="checkbox" class="ba" name="ab" value="30">30s 
 
<br> 
 
<input type="checkbox" class="ba" name="ab" value="40">40s 
 
<br> 
 
<input type="checkbox" class="ba" name="ab" value="50">50s 
 
<br> 
 
<input type="checkbox" class="ba" name="ab" value="All" onClick="toggle3(this)">All Ages 
 
<br> 
 

 
<input type="checkbox" class="ba" name="ib" id="bracket" value="All">Input Bracket 
 
<br> 
 
<div id='input-bracket'> 
 
    <select name="sab" class="req" id="age-range" style="width:50px; height:30px;" autocomplete="off" required/></select>- 
 
    <select name="sab" class="req" id="second" style="width:50px; height:30px;" autocomplete="off" required/></select> 
 
</div>

+0

当我检查了另一个它也显示输入-bracket :( – Vista

+0

@Vista我修改了代码 –

相关问题