我继承了一个遗留的Web应用程序,需要更新才能使用一组新的资产检查照片。 我的问题是body标签有一个onload事件,它引用并填充现有应用程序中的select表单元素(cChg)。当我获取html页面的副本并编辑它以引用新的网络共享时,onload事件不会引用select表单元素并返回空引用。
我不明白为什么现有的Web应用程序会正确引用select表单元素,但是在编辑之后运行html页面不会。
我在这里缺少什么?
<HTML>
<head>
<script type="text/javascript">
function imageLoad() {
dts = "Capture Date/Time: XXX";
document.getElementById('mdt').innerHTML = dts;
var list = document.getElementById('cChg');
val = 0;
str = "0m to 100m";
list.options[list.options.length] = new Option(str, val);
}
</script>
</head>
<body onload="imageLoad();">
<div id="imgbox"></div>
<form name="frmCtrls">
<table width="970px">
<tr>
<td>
<button type="button" name="cBtnPlay" title="Play"></button>
<button type="button" name="cBtnStop" title="Stop"></button>
</td>
<td align="right">
<select name="cSpeed">
<option value="900">Very Slow</option>
<option value="700">Slow</option>
</select>
<select name="cChg">
<option value="0" selected="selected">Please Select</option>
</select>
</td>
</tr>
</table>
</form>
<table width="970px">
<tr>
<td>Click the image</td>
</tr>
<tr>
<td><span id="mdt"></td>
</tr>
</table>
</body>
</HTML>
&#13;
答案 0 :(得分:0)
这里的问题是select元素只有一个name参数,而不是id参数。
当我使用document.getElementById('cChg');引用select元素时,找不到具有该id的元素并返回null。
解决方法是在select元素定义中添加一个id参数,即select id ='cChg'&gt ;.
我仍然不明白为什么现有的Web应用程序正确引用了select元素(没有id参数),但我有一个解决方案,可以进行我需要的编辑并更新html页面。