我有一个下拉框,里面装满了从数据库中提取的选项。这些选项中的每一个都将具有"Y"或"N"的活动指示器值。我有一个复选框,它将包括所有选项或仅包括活动选项。
我目前可以选择完美地从数据库中提取。输入选项的for循环如下所示:
for ($i = 0; $i < count($category_record); $i++) {
if($category_record[$i]->getActiveInd() == "Y")
{
echo '<option value="'.$category_record[$i]->getId().'" '.$checked.' > - '.$category_record[$i]->getTitle().'</option>';
}
else if($category_record[$i]->getActiveInd() == "N")
{
echo '<option id="inactive" value="'.$category_record[$i]->getId().'" '.$checked.' > - '.$category_record[$i]->getTitle().'</option>';
}
因此,如果该值是非活动值,则该选项的id将为"#inactive"。
复选框很简单:
<input type="checkbox" name="search_active" id="checkbox" />
我现在的jQuery是这样的:
$(document).ready(function() {
$('input[type=checkbox]').click(function(){
var $this = $(this);
if($this.is(':checked'))
{
$('#inactive').show();
}
else
{
$('#inactive').hide();
}
});
});
这段代码的作用很小,因为当取消选中复选框时,它会隐藏不活动的值,但它只会隐藏遇到的第一个值,而不是所有值。我已经检查了这些元素,它们仍然肯定有#inactive id,但它们不会隐藏。我一直在寻找答案,但一直找不到,我做错了什么?
对于多个元素,您应该使用类.active
、.inactive
或创建自己的属性,如state。
PHP:
for ($i = 0; $i < count($category_record); $i++) {
if($category_record[$i]->getActiveInd() == "Y")
{
echo '<option value="'.$category_record[$i]->getId().'" '.$checked.' > - '.$category_record[$i]->getTitle().'</option>';
}
else if($category_record[$i]->getActiveInd() == "N")
{
echo '<option class="inactive" value="'.$category_record[$i]->getId().'" '.$checked.' > - '.$category_record[$i]->getTitle().'</option>';
}
JS:
$(document).ready(function() {
$('input[type=checkbox]').click(function(){
var $this = $(this);
if($this.is(':checked'))
{
$('.inactive').show();
}
else
{
$('.inactive').hide();
}
});
});
使用class‘inactive’作为下拉列表中的选项,而不是id。并使用class将js修改为show()和hide()。