jquery窗体onchange选择值变化
问题描述:
我在寻找解决这个问题的最佳方案。我有一个简单的商店逻辑问题。有2个选择元素,大小和颜色。我想让它们对数据有依赖性(现在它是示例数据,但后来它会来自数据库) - 大小将决定哪些颜色选项对客户可见(隐藏不必要的选项)。jquery窗体onchange选择值变化
第一个问题是,当我进行更改事件时,我想隐藏默认显示的元素准备文档,它仍然可见(我不得不改变颜色不同于打开下拉菜单,它不会是可见的然后)。
其次,我正在寻找最灵活的解决方案,因为我对我有疑虑。这里的代码:
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);
}
});
});
答
我回答了我理解的唯一部分。
而不是使用多个if
语句可以使用开关
switch(selectsize) {
case rozmiar[1]:
$('select.form2 option[value='+color[2]+']').hide();
break;
//case <another>"
//break;
}
答
这是我的理解是需要做的。根据.form1
中选定的选项索引,从.form2
中选择相应的选项。
$('select.form1').change(function (i) {
var selectedIndex = $('select.form1 option:selected').index();
$('select.form2 option:eq(' + selectedIndex + ')').attr('selected', 'selected');
});
,你会介意分享一些你的代码? – codef0rmer 2012-03-28 08:21:55
刚刚完成,我还在考虑如何使我的选择器中的变量变得更短,以使它更短 – Malyo 2012-03-28 08:30:51
@Malyo,请仅发布相关代码,而不是所有内容 – Starx 2012-03-28 08:35:55