2

我有两个包含相同项目的选择组合框。

我想做的是,当我从第一个组合框中选择任何项目时,应在第二个组合框中禁用具有相同值的项目。

这是我想要的图像: 在此处输入图像描述

我使用的库是:http ://dropdown-check-list.googlecode.com/svn/trunk/doc/dropdownchecklist.html

我尝试过的代码是:

       $("#select_first").dropdownchecklist({maxDropHeight: 150,
                onComplete: function(selector) {
                    var values = "";
                    for( i=0; i < selector.options.length; i++ ) {
                        if (selector.options[i].selected && (selector.options[i].value != "")) {
                            $("#select_second").children('option').each(function() {
                                if ( $(this).val() === selector.options[i].value ) {
                                    $(this).attr('disabled', true).siblings().removeAttr('disabled');
                                }
                            });
                        }
                    }
                }
            });

我的 jsfiddle 在这里 请在此添加解决方案。

有的话请给出解决方案。非常感谢。

4

3 回答 3

3

参考这个。我从中得到了解决方案..希望这对您也有帮助... http://dropdown-check-list.googlecode.com/svn/trunk/doc/dropdownchecklist.html

于 2013-10-28T09:10:24.390 回答
2

根据您的代码,您仅禁用< option >但需要刷新第二个控件以包含更新的属性属性。

$("#s2").dropdownchecklist("refresh");

因此,在对控件进行任何更改后,您必须刷新它以使其工作。

演示

于 2013-10-26T13:54:42.217 回答
0

看看这个| 演示

HTML

<select id="select1" onchange="fix(this,'select2')">
    <option>Select one</option>
    <option>First value</option>
    <option>Second Value</option>
    <option>Third Value</option>
</select>

<select id="select2" onchange="fix(this,'select1')">
    <option> - Select one</option>
    <option>First value</option>
    <option>Second Value</option>
    <option>Third Value</option>
</select>
<br><br>
<input type="checkbox" value="1" onclick="set(this)">value1 <input type="checkbox" value="1" onclick="set(this)">value1<br>
<input type="checkbox" value="2" onclick="set(this)">value2 <input type="checkbox" value="2" onclick="set(this)">value2<br>
<input type="checkbox" value="3" onclick="set(this)">value3 <input type="checkbox" value="3" onclick="set(this)">value3<br>
<input type="checkbox" value="4" onclick="set(this)">value4 <input type="checkbox" value="4" onclick="set(this)">value4<br>

JAVASCRIPT

function fix(dis,elem)
{
    var value = dis.options[dis.selectedIndex].text;  

    var ele = document.getElementById(elem);
    for(var i=0;i<ele.options.length;i++)
    {
        if(ele.options[i].text == value)
        {
            ele.options[i].style.display="none";
        }
        else
        ele.options[i].style.display="block";
    }

}
function set(dis)
{
     var ele = document.getElementsByTagName('input');
    for(var i=0;i<ele.length;i++)
    {
        if(ele[i].getAttribute('type')=='checkbox')
        {
             if(ele[i].value == dis.value)
             {
                 if(ele[i].disabled)
                     ele[i].disabled = false;
                 else
                  ele[i].disabled = true;   
             }

        }
    }
    dis.disabled = false;
}
于 2013-10-26T13:38:21.687 回答