Vor*_*ler 1 html javascript null
我有这个Javascript,它只是无法正常工作.我已经检查了JSlint但是说一切都有效.仍然无法正常工作.javascript不在HTML中,但链接在<head>
注意:我正在使用本地服务器,所以即时页面加载.
function changeVisibility() {
var a = document.getElementById('invisible');
a.style.display = 'block';
}
var changed = document.getElementById('click1');
changed.onchange = changeVisibility;
Run Code Online (Sandbox Code Playgroud)
这是相应的HTML
<input type="file" name="click[]" size="35" id="click1" />
<div id="invisible" style="display: none;">
<a href="javascript:addFileInput();">Attach another File</a>
</div>
Run Code Online (Sandbox Code Playgroud)
那么我会点击输入,选择一个文件并批准.然后onchange事件触发器和我的不可见div的样式设置为阻止.
问题是,我一直收到这个错误:
"changed is null:changed.onchange = changeVisibility;"
我不明白,我真的没有得到我在这里俯瞰的东西.
编辑:问题回答,谢谢你Mercutio的帮助和其他人当然.最终代码:
function loadEvents() {
var changed = document.getElementById('click1');
var a = document.getElementById('invisible');
document.getElementById('addField').onclick = addFileInput;
changed.onchange = function() {
a.style.display = 'block';
}
}
if (document.getElementById) window.onload = loadEvents;
Run Code Online (Sandbox Code Playgroud)
这是相应的HTML:
<input type="file" name="click[]" size="35" id="click1" />
<div id="invisible" style="display: none;">
<a href="#">Attach another File</a>
</div>
Run Code Online (Sandbox Code Playgroud)
另外,感谢JSbin的链接,不知道,看起来很漂亮.
这听起来好像在引用它时DOM对象不存在.也许在文档完全加载后将代码更改为执行(或将javascript放在页面底部)
注意:我正在使用本地服务器,所以即时页面加载.
这不是问题 - 文档的组成部分按顺序加载.加载它们的速度并不重要,有些事情发生在别人面前:D
我现在唯一想做的就是从...中删除Javascript链接
在那里放置一个id,在你的函数内部执行以下操作:
document.getElementById('addField').onclick = addFileInput;
Run Code Online (Sandbox Code Playgroud)
或者,因为您已经将div作为变量'a':
a.firstChild.onclick = addFileInput;
Run Code Online (Sandbox Code Playgroud)
但这显然会给你一个无效的锚标记.最佳实践建议您应该提供一种不使用javascript的方法,并使用javascript方法覆盖该功能(如果可用).
| 归档时间: |
|
| 查看次数: |
2811 次 |
| 最近记录: |