Jquery表单onchange选择值更改
我正在寻找这个问题的最佳解决方案。我有一个简单的商店逻辑问题。有两个选择元素,大小和颜色。我想让它们依赖于数据(现在是示例数据,但稍后将来自数据库)——大小将决定哪些颜色选项对客户可见(隐藏不必要的颜色选项) 第一个问题是,当我设置change事件时,我想在document ready上隐藏默认显示的元素,它仍然可见(我必须再次将颜色更改为与open下拉列表不同的颜色,然后它将不可见) 第二,我正在寻找最灵活的解决方案,因为我对自己的方案有疑问。代码如下:Jquery表单onchange选择值更改,jquery,forms,select,option,onchange,Jquery,Forms,Select,Option,Onchange,我正在寻找这个问题的最佳解决方案。我有一个简单的商店逻辑问题。有两个选择元素,大小和颜色。我想让它们依赖于数据(现在是示例数据,但稍后将来自数据库)——大小将决定哪些颜色选项对客户可见(隐藏不必要的颜色选项) 第一个问题是,当我设置change事件时,我想在document ready上隐藏默认显示的元素,它仍然可见(我必须再次将颜色更改为与open下拉列表不同的颜色,然后它将不可见) 第二,我正在寻找最灵活的解决方案,因为我对自己的方案有疑问。代码如下: var rozmiar
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);
}
});
});
我只回答了我能理解的部分 您可以使用switch来代替使用多个
if
语句
switch(selectsize) {
case rozmiar[1]:
$('select.form2 option[value='+color[2]+']').hide();
break;
//case <another>"
//break;
}
开关(选择大小){
案例rozmiar[1]:
$('select.form2 option[value='+color[2]+']')。hide();
打破
//案例”
//中断;
}
这是我理解的需要做的事情。根据.form1
中所选选项的索引,从.form2
中选择相应的选项
$('select.form1').change(function (i) {
var selectedIndex = $('select.form1 option:selected').index();
$('select.form2 option:eq(' + selectedIndex + ')').attr('selected', 'selected');
});
D3m0:你介意分享你的一些代码吗?刚刚完成,我还在考虑如何从我的选择选择器中生成变量,使其shorter@Malyo,请仅发布问题的相关代码,而不是everything@Malyo,我想你需要把你的问题分解成不同的问题。好的,我会尽量简化我的问题我在想,但开关真的更快吗?@Malyo,请参考。;)我可以在开关内部使用比较吗?比如case(wybranyRozmiar==rozmiar[0]),因为它对我的工作至关重要code@Malyo,我不建议这样做,因为在语义上它是错误的。开关用于处理一个表达式上有多个版本的情况。