如何从乘法组合框中检测值? 当我改变值时,组合框中的一个变为“2”组件显示 但当我改变另一个乘法组合框的值变为“2” 该组件直接隐藏。我不会发生这种情况
我想,如果仍然存在值2,则该组件不会直接隐藏
这是乘以组合框
的功能function addEmploy() {}
$('#addEmploy').click(function(){
$('#comboEmploy')
.append('<br />')
.append($('#comboEmploy select').first().clone(true));
});
这是显示或隐藏组件的脚本
$("#employ").change(function() {
if($(this).val() == "2"){
$("#comboStudy").show("slow");
}else{
$("#comboStudy").hide("slow");
}
});
这是组合框
<span id="comboEmploy">
<select name="employ[]" id="employ">
<option value="NULL" selected >Choose one</option>
<?php foreach ($employs as $employ) :?>
<option value="<?php echo $employ->employ_id; ?>">
<?php echo $employ->employ_name; ?></option>
<?php endforeach; ?>
</select>
</span>
<a href="#" id="addEmploy">Add Employ</a>
这是我要展示/隐藏的组件
<span id="comboStudy">
<select name="study[]" id="study">
<option selected value=NULL>Choose one</option>
<?php foreach ($studies as $study) :?>
<option value="<?php echo $study->study_id; ?>">
<?php echo $study->study_name; ?></option>
<?php endforeach; ?>
</select>
</span>
任何人都可以帮助我。谢谢。
答案 0 :(得分:0)
您遇到的问题是由于您的#employs.change处理程序已附加到所有选择框。这样,如果它们中的任何一个被改变为2以外的东西,它将隐藏。您需要在此更改处理程序中执行的操作是检查所有选择框(而不仅仅是已更改的选项框),并查看其中是否有任何一个包含2.您只能隐藏它们是否只有2个。
此外,ID应该是唯一的。克隆选择框时,应更改ID。