Que*_*low 0 html javascript events dom-events
我有一个动态隐藏文本输入字段的表单,具体取决于加载时选项字段的初始选择。经过一番尝试和错误后,我意识到<script>必须将标签放置在<form>元素下方才能使此功能正常工作:
<html>
....
<body>
....
<form>
<select name=choice>
<option value=0 selected>Default</option>
<option value=1>Others</option>
</select>
<input type=text name=others></input>
</form>
....
<script type='text/javascript'>
function init()
{
var A = document.forms[0].choice;
var B = document.forms[0].others;
if(A.options[A.selectedIndex].value == 0) B.style.display = 'none';
}
window.onload = init();
</script>
....
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
该事件window.onload是一个全局事件,在页面所有资源(包括 DOM、图像、框架等)加载完成后触发。那么,为什么标签还需要<script>放在<form>元素下面呢?
因为您执行的是init function而不是将指针分配给函数......
改变:
window.onload = init();
Run Code Online (Sandbox Code Playgroud)
到:
window.onload = init;
Run Code Online (Sandbox Code Playgroud)