我有一个在控件更新期间调用的函数,其中传递了'This',因此函数知道正在更新的控件。我也在页面加载时调用函数来获取初始值,但发送document.getElementById()似乎不起作用。我应该在这里过什么?
例如:
<script type="text/javascript">
window.onload = function () {
alert("Got to window.onload");
materialSelectionChange(document.getElementById('SquaresDropDownList'));
};
</script>
在js文件中......
function materialSelectionChange(obj) {
alert("Got into function");
}
此外,确实在正确更改时触发js功能
修改
问题似乎是JS文档的加载时间。此时函数未成功调用,因为显然JS文件尚未完成加载。可能是因为window.onload。如果我将函数移动到页面而不是JS文件中,它就可以工作。有没有办法我可以添加延迟,所以我知道页面,它的组件是完全加载的?
答案 0 :(得分:4)
您没有委托窗口加载事件,您正在调用它,也是您在id周围缺少的引号:
window.onload = myFunction(document.getElementById(typeSelect));
尝试包裹它:
window.onload = function() {
myFunction(document.getElementById('typeSelect')); //id in quotes
};
修改强>
你必须处理js文件导入,在调用函数之前必须先导入:
<script src='your-script-file.js'></script>
<script type="text/javascript">
window.onload = function () {
materialSelectionChange(document.getElementById('SquaresDropDownList'));
};
</script>
答案 1 :(得分:0)
<select id="typeSelect" onchange="myFunction(this)">
window.onload = function(){
myFunction.bind(document.getElementById('typeSelect'));
}
答案 2 :(得分:0)
问题似乎是JS文档的加载时间。此时函数未成功调用,因为显然JS文件尚未完成加载。如果我将函数移动到页面而不是JS文件中,它就可以工作。有没有办法我可以添加延迟,所以我知道页面,它的组件是完全加载的?