У меня есть этот кусок Javascript, и он просто не будет работать. Я уже проверил JSlint, но это говорит, что все работает. Все еще не работает. Javascript находится не в HTML, а связан в <head>
примечание: я работаю с локальным сервером, поэтому загрузка страниц происходит мгновенно.
function changeVisibility() {
var a = document.getElementById('invisible');
a.style.display = 'block';
}
var changed = document.getElementById('click1');
changed.onchange = changeVisibility;
Это соответствующий 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>
Итак, что происходит, я нажимаю на вход, выбираю файл и утверждаю. Затем запускается событие onchange, и стиль моего невидимого div устанавливается равным block.
Проблема в том, что я получаю эту ошибку:
"изменено равно нулю:
change.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;
Вот соответствующий HTML:
<input type="file" name="click[]" size="35" id="click1" />
<div id="invisible" style="display: none;">
<a href="#">Attach another File</a>
</div>
Также, спасибо за ссылку на JSbin , не знал об этом, выглядит изящно.