Ошибка в вызове функции
Всем привет у меня есть два инпута, куда я ввожу числа. Хочу добавить кнопку по нажатию на которую эти поля будут очищаться, вроде бы все написал правильно, но функция не отрабатывает и выдает следующую ошибку: TypeError: Cannot set property 'value' of null. Не пойму в чем ошибка.
<p>Первое число: <input type="text" id="num1"></p> <p>Второе число: <input type="text" id="num2"></p> <button onclick="clean()">Clean</button> function clean(){ document.getElementById("num1").value = ""; document.getElementById("num2").value = ""; } |
причина ошибки описана https://learn.javascript.ru/onload-ondomcontentloaded
пример решения <div id="trackedBlock"> <p>Первое число: <input type="text" id="num1"></p> <p>Второе число: <input type="text" id="num2"></p> </div> <button id="clearBlock">Clean</button> <script> document.addEventListener("DOMContentLoaded", () => { clearBlock.addEventListener("click", () => { [...trackedBlock.querySelectorAll('input')].forEach(el=>el.value="") }); }); </script> |
mateorich,
Vlasenko Fedor, :-? что не так? <!DOCTYPE html> <html> <head> <title>Untitled</title> <meta charset="utf-8"> <script> function clean(){ document.getElementById("num1").value = ""; document.getElementById("num2").value = ""; } </script> </head> <body> <p>Первое число: <input type="text" id="num1"></p> <p>Второе число: <input type="text" id="num2"></p> <button onclick="clean()">Clean</button> </body> </html> |
рони, специально ведь дал ссылку на DOMContentLoaded
в своем примере вы объявили функцию clean до ее использования в примере ТС функция clean не определена в <button onclick="clean()">Clean</button> так как инициализация идет уже после в коде |
Цитата:
|
Цитата:
|
<p>Первое число: <input type="text" id="num1"></p> <p>Второе число: <input type="text" id="num2"></p> <button onclick="clean()">Clean</button> <script> function clean(){ document.getElementById("num1").value = ""; document.getElementById("num2").value = ""; } </script> рони не элементов, а самой функции нет <button onclick="console.log(clean),clean()">Clean</button> Все работает отлично! |
Vlasenko Fedor,
почему у меня всё работает? <!DOCTYPE html> <html> <head> <title>Untitled</title> <meta charset="utf-8"> </head> <body> <p>Первое число: <input type="text" id="num1"></p> <p>Второе число: <input type="text" id="num2"></p> <button onclick="clean()">Clean</button> <script> function clean(){ document.getElementById("num1").value = ""; document.getElementById("num2").value = ""; } </script> </body> </html> |
вариант с ошибкой 'value' of null, строка 9, id не дописано.
<!DOCTYPE html> <html> <head> <title>Untitled</title> <meta charset="utf-8"> </head> <body> <p>Первое число: <input type="text" id="num"></p> <p>Второе число: <input type="text" id="num2"></p> <button onclick="clean()">Clean</button> <script> function clean(){ document.getElementById("num1").value = ""; document.getElementById("num2").value = ""; } </script> </body> </html> |
Vlasenko Fedor,
Все дело в строке 11 |
Часовой пояс GMT +3, время: 15:42. |