我只在IE8中收到Javascript错误。 Chrome,FF& IE9 +完美运行。
IE8中的错误是:'type [...] [...]'为null或不是对象
基本上,Size字段填充了各种值,一旦选择值,Type和Code字段将更改为Array中的相应值。关于为什么IE8不想玩的任何想法?
该错误还引用了以下代码中的以下行:
typelist.options[typelist.options.length]= new Option(type[selectedproduct][i].split("|")[0],type[selectedproduct][i].split("|")[1])
感谢。
代码:
<form name="products">
<table >
<tr>
<td width="65px">Size</td>
<td>
<select name="size" onChange="updatetype(this.selectedIndex)" style="width:120px;">
<option value="A26-0015">Large</option>
<option value="A26-0016">Small</option>
</select>
</td>
</tr>
<tr>
<td width="65px">Type</td>
<td>
<select name="type" onChange="updatecode(this.options[this.options.selectedIndex].value)"></select>
</td>
</tr>
<script type="text/javascript">
var type=new Array()
type[0]=["Blue|A26-0015",];type1[1]=["Green|A26-0016",];
</script>
<tr>
<td>Code</td>
<td><input type="text" value="A26-0015" name="code" readonly="readonly" ></td>
</tr>
</table>
</form>
<script type="text/javascript" >
var sizelist=document.products.size
var typelist=document.products.type
var codelist=document.products.code
updatetype(0);
function updatetype(selectedproduct){
typelist.options.length=0
if(selectedproduct>-1){
for (i=0; i<type[selectedproduct].length; i++){
typelist.options[typelist.options.length]= new Option(type[selectedproduct][i].split("|")[0],type[selectedproduct][i].split("|")[1])
}
}
updatecode(typelist.value)
}
function updatecode(code){
codelist.value = code
}
</script>
答案 0 :(得分:1)
我首先从数组中删除 null 值:
type[0]=["Blue|A26-0015",];
^----- trailing comma