我有一个<select>
从我的数据库中填充的下拉列表。当为下拉列表生成项目列表时,显示每个项目的更多信息的按钮也会生成。但是,我想隐藏每个按钮,除了与当前选择的下拉列表值对应的按钮。
因此,假设用户选择下拉列表的第三个值。我会使用 JavaScript 来监控这种变化,并根据其值显示相应的按钮。用户单击按钮,所选选项的所有信息都会显示在警报窗口上。现在用户再次将该值更改为任何其他选项,上一个按钮被隐藏,因为值不匹配,并且显示了匹配的按钮。
请注意,所有 JavaScript 都将用于外部文件,并且此表单有多个下拉菜单,因此我需要它来接收参数。
JavaScript
function determineDisplay(Item, itemView) {
var locateItem = document.getElementById(Item);
var locateView = document.getElementByClassName('.' + itemView);
locateItem.change(function() {
if(locateItem.value == locateView.id) {
locateView.style = "block";
locateView.show();
}
else
locateView.hide();
}
}
HTML
<div id="SnackBox" style="display: none">
<select id="dfood" name="dfood"
onchange="determineDisplay(this, 'content_one');">
<option>--Select--</option>
<?php foreach($dfood_products as $key => $product) :
$name = $product['name'];
$cost = number_format($product['cost'], 2);
$item = $name . ' ($' . $cost . ')';?>
<option value="<?php echo $key; ?>"><?php echo $item; ?></option>
<?php endforeach; ?>
</select>
<input name="df_qty" type="text" placeholder="qty" size="1" maxlength="1"/>
<?php foreach($dfood_products as $key => $product) : ?>
<input type="button" value="view" id="displayInfo('<?php echo $key; ?>');"
class="content_one" style="display:none"
onclick="displayInfo('<?php echo $key; ?>');"/>
<?php endforeach; ?>
</div>
<span id="SnackPlate"></span>