Jquery表单onchange选择值更改

时间:2012-03-28 08:15:09

标签: jquery forms select option onchange

我正在寻找这个问题的最佳解决方案。我有一个简单的商店逻辑问题。有2个选择元素,尺寸颜色。我想让它们依赖于数据(现在它是示例数据,但后来它将来自数据库) - 大小将决定哪些颜色选项对于客户是可见的(隐藏不必要的颜色)。

第一个问题是,当我进行更改事件时,我想隐藏文档准备好的默认显示元素,它仍然可见(我必须再次将颜色更改为不同于打开的下拉列表,然后它将不可见)。

其次是我正在寻找最灵活的解决方案,因为我对我的怀疑。这是代码:

       var rozmiar = new Array("S", "M", "L", "XL", "XXL");
   var kolor = new Array("Czerwony", "Niebieski", "Zielony", "Biały", "Czarny");
   var opcje = new Array( rozmiar, kolor);

        $(document).ready(function(){
        $('.form1').change(function(){
                $('.form2 option').show();

                var selectSelector = function(z){
                    selectSelector = $('select.form2 option[value='+kolor[z]+']').hide();
                };

                wybranyRozmiar = $(this).val();
                    if(wybranyRozmiar == rozmiar[0]){
                        selectSelector(0);
                    }
                    if(wybranyRozmiar == rozmiar[1]){
                        selectSelector(1);
                    }
                    if(wybranyRozmiar == rozmiar[2]){
                        selectSelector(2);
                    }
                    if(wybranyRozmiar == rozmiar[3]){
                        selectSelector(3);
                    }
                    if(wybranyRozmiar == rozmiar[4]){
                        selectSelector(4);
                    }
            });
        });

2 个答案:

答案 0 :(得分:1)

我正在回答我理解的唯一部分。

您可以使用开关

,而不是使用多个if语句
switch(selectsize) {
   case rozmiar[1]:
       $('select.form2 option[value='+color[2]+']').hide();
       break;
   //case <another>"
       //break;
}

答案 1 :(得分:0)

这就是我所理解的,需要做的事情。根据{{​​1}}中所选选项的索引,从.form2中选择相应的选项。

.form1

D3m0:http://jsbin.com/azilow