检测乘法组合框中的值

时间:2011-04-27 16:33:34

标签: javascript jquery

如何从乘法组合框中检测值? 当我改变值时,组合框中的一个变为“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>

任何人都可以帮助我。谢谢。

1 个答案:

答案 0 :(得分:0)

您遇到的问题是由于您的#employs.change处理程序已附加到所有选择框。这样,如果它们中的任何一个被改变为2以外的东西,它将隐藏。您需要在此更改处理程序中执行的操作是检查所有选择框(而不仅仅是已更改的选项框),并查看其中是否有任何一个包含2.您只能隐藏它们是否只有2个。

此外,ID应该是唯一的。克隆选择框时,应更改ID。