我在id为“qlt”的表单中有一个select元素。 如果我更改了该选择的值,则其他SELECT(#names)元素会更改其选项。
但是,似乎更改功能在我勾选下拉列表时生效,而不是在值更改后生效。
所以下面我的jquery代码条件有相反的效果。如果qlt的值是14-1,那么选择将具有“Hello(90x55mm)”,因为它选择了名片(90x55mm。
var qlt = (jQuery("#qlt").val()).split(":")[0];
jQuery('#qlt').change(function(){
if(qlt=="14-1"){
ChangeOptions(["Business Card (90x55mm)"],"#names",[1]);
}
else if(qlt=="14-2"){
ChangeOptions(["Hello (90x55mm)"],"#names",[2]);
}
});
jQuery('#names').change(function(){
quantities=[50,100,250,500,1000,2000,5000];
ChangeOptions(quantities,"#qlnt",quantities);
});
如果我的问题不明确,您可以访问实际网站:
http://210.48.94.218/~printabl/products/labels-stickers/
我指的两个选择元素是质量和尺寸下拉菜单。表格在中间。
答案 0 :(得分:1)
实际问题看起来像回调执行的顺序
qlt
变量是使用方法calculate
设置的,该方法是使用jQuery("select").change(calculate);
在第701行注册的。
但是更改选项回调是在第528行注册的,它将在调用calculate
方法之前执行,这就是qlt
的值在下次选择之前不会更新的原因。
一种解决方案是在第528行之前移动jQuery("select").change(calculate);
另一个在
这可能是某些脚本执行的问题,我认为qlt
应该是#qlt
输入中当前选定的值,然后您可以声明一个局部变量并使用{分配当前值{1}}
$(this).val()