请帮忙查看以下有关组合框属性的代码

时间:2014-10-29 12:15:44

标签: javascript jquery combobox

我有三个组合框,所有组合都有相同的值。

以下是代码:



$(document).ready(function(){
    $("select").change(function(e){

        var id = $(this).attr("id");
        var value = this.value;

        $("select option").each(function(){

            var idParent = $(this).parent().attr("id");
			
            if(id != idParent){
                if(this.value == value){
                    this.disabled = true;
                }
                
                else if($("#box_g1 option:selected").val()!="Default"){
                    $("#box_g2").prop("disabled", false);
                    $("#box_g3").prop("disabled", false);
                }else{
                    $("#box_g2").prop("disabled",true).val('Disabled');
                    $("#box_g3").prop("disabled",true).val('Disabled');
                }
            }
        });
    });
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<select name="n1" id="box_g1">
    <option value="Default">Default</option>
    <option value="A">A</option>
    <option value="B">B</option>
    <option value="C">C</option>
</select>

<select name="n2" id="box_g2" disabled="disabled">
    <option value="Disabled">Disabled</option>
    <option value="A">A</option>
    <option value="B">B</option>
    <option value="C">C</option>
</select>

<select name="n3" id="box_g3" disabled="disabled">
    <option value="Disabled">Disabled</option>
    <option value="A">A</option>
    <option value="B">B</option>
    <option value="C">C</option>
</select>
&#13;
&#13;
&#13;

我得到的问题:

  1. 当我选择价值&#39; A&#39;从combobox1然后选择值&#39; B&#39;从combobox1(来自相同的组合框),combobox2禁用值的值应该是&#39; B&#39;不是&#39; A&#39;。与combobox3相同的行为。
  2. 如果我们选择,重视&#39;默认&#39;从combobox1开始,然后所有的组合框都应该使用默认值进行重置,并且还需要将combobox2和combobox3重置为“禁用”#39;属性。
  3. 请帮忙。

1 个答案:

答案 0 :(得分:0)

这是更新的代码:

$(document).ready(function () {
 $("select ").change(function (e) {
   if ($("#box_g1").val() != "Default") {
      var ind = $("#box_g1 option:selected").index();
      $("#box_g3 option:eq("+ind+")").prop("disabled", true);
      $("#box_g2 option:eq("+ind+")").prop("disabled", true);
      $("#box_g2 option").not(":eq("+ind+")").prop("disabled", false);
      $("#box_g3 option").not(":eq("+ind+")").prop("disabled", false);
      $("#box_g3, #box_g2").prop("disabled", false);
   } else {
      $("#box_g2, #box_g3").prop("disabled", true).val('Disabled');
   }
 });
});

UPDATED FIDDLE