我为客户构建了一个自定义商店前端,他的select
下拉菜单更新时出现问题。我说他是因为它在现代浏览器甚至是IE7 +中对我的预期效果如此,所以我不太确定如何解决这个问题。
当用户更改产品下拉列表时,交付选项下拉列表会更新以反映该产品的选项。他看到的问题是它根本没有改变选项(这使得结账失败 - 我知道,我正在研究非JS / JS失败的后备,但我想得到JS版本也工作。)
这是我的下拉列表的(截断的)HTML:
<select id="product" name="product">
<option value="1">3 Man Chess Primary Set includes FREE shipping in Contiguous USA. [ $49.95 ]</option>
<option value="999">Digital Download [ $0.99 ]</option>
</select>
<select id="location" name="location">
<optgroup label="3 Man Chess Primary Set includes FREE shipping in Contiguous USA." id="1">
<option value="1">Contiguous U.S.A. (UPS Ground)</option>
<option value="2">Alaska & Hawaii (Priority Mail)</option>
<option value="3">Canada (Priority Mail)</option>
</optgroup>
<optgroup label="Digital Download" id="999">
<option value="50">E-mail</option>
</optgroup>
</select>
我遍历select的optgroups并将每个中的HTML设置为一个由ID命名的变量(这是更改的内容)。产品ID和位置optroup ID匹配。
var amtList = Array {
[ ... ]
optgroups: Array[1000] {
1: "<option value="1">Contiguous U.S.A. (UPS Ground)</option>
<option value="2">Alaska & Hawaii (Priority Mail)</option>
<option value="3">Canada (Priority Mail)</option>"
999: "<option value="50">E-mail</option>"
}
这是实际进行切换的代码:
$("#product").change(function(){
$("#location").html( amtList["optgroups"][ $(this).val() ] );
});
这是他给我的规格,他说这些规格不起作用。我让他运行Enable JavaScript和WhatBrowser个网站来获取规格。
ipad已启用JavaScript&amp; Safari Mobile 5(我故意不进行升级,因为新版本会在旧版本中找到我需要的东西)。 [确实加载但很慢]
XP旧办公室电脑启用了JavaScript&amp; IE7 [永不加载]
我的HP win 7双proc 64位已启用JavaScript&amp; IE9 [永不加载]
另一台XP双进程64位计算机,但只有32位XP Home JavaScript启用&amp; IE8 [永不加载]
为什么它不会更新这些机器上的菜单的任何想法 - 是否存在一些我缺少的向后兼容性问题?似乎在我所有的现代浏览器上都能正常工作(IE11在IE7-10模式下的开发对我来说似乎都很好。)
答案 0 :(得分:0)
在代码中留下console.log
次调用可能会导致在未安装任何console
的浏览器中抛出错误。这将包括IE7和IE8,除非用户安装了所有IE版本都没有的开发人员工具
有许多可用的包装器或填充程序可以添加到代码中,以检查console
是否存在,如果没有错误处理它