for ($i = 0; $i <= $member_count - 1; $i++) {
?>
<select id='purpose' name="member[<?= $i ?>][health_status]">
<option value=""></option>
<option value="0">Perfect</option>
<option value="1">Not well</option>
</select>
<div id='health'>
<label>Illness If Any:</label>
<select name="member[<?= $i ?>][illness_type]">
<option value=""></option>
<option value="0">Diabetes</option>
<option value="1">BP</option>
<option value="2">Head</option>
</select>
</div>
如何使第二个下拉隐藏在第一个下拉列表的选项中。 .Dropdown无法正常使用for循环
脚本代码:
<script>
$(document).ready(function () {
$('#purpose').on('change', function () {
if (this.value == 'Perfect')
{
$("#health").hide();
} else
{
$("#health").show();
}
});
});
</script>
答案 0 :(得分:0)
你必须使用javascript。使用jQuery,这应该可以解决问题;只需用第二个下拉菜单的选择器替换secondDropdownMenuSelector值(例如,你可以给它一个id):
<script type="text/javascript">
$document).ready(function(){
secondDropdownMenuSelector = "yourSelectorHere";
$("#purpose").on("change", function(){
if($(this).val()=='1' && $(secondDropdownMenuSelector).is(":hidden")){
$(secondDropdownMenuSelector).show();
}
else if ($(this).val()=='0' && $(secondDropdownMenuSelector).is(":visible")) {
$(secondDropdownMenuSelector).hide();
}//end if
});
});
</script>
虽然我现在看到您正在使用循环多次输出下拉菜单。这将导致多个元素具有相同的id。情况永远不会如此; ID旨在是唯一的。你要么必须给每个元素一个唯一的id(你可以通过将'目的'与$ i连接起来来做到这一点),或者更好的是你不应该使用id而只是一个类。
另外,如果你使用的是类,那么而不是
$(secondDropdownMenuSelector)
然后你必须使用
$(this).siblings(secondDropdownMenuSelector)
每次都要引用正确的下拉菜单。
答案 1 :(得分:0)
给它一个机会!!
for ($i = 0; $i <= $member_count - 1; $i++) {
?>
<div class="select_container">
<select class='purpose' name="member[<?= $i ?>][health_status]">
<option value=""></option>
<option value="0">Perfect</option>
<option value="1">Not well</option>
</select>
<div class='health'>
<label>Illness If Any:</label>
<select name="member[<?= $i ?>][illness_type]">
<option value=""></option>
<option value="0">Diabetes</option>
<option value="1">BP</option>
<option value="2">Head</option>
</select>
</div>
</div>
{{1}}