djamali, Лучше не использовать innerText:
https://developer.mozilla.org/ru/doc...Node/innerText
На момент выполнения кода на странице отсутствует элемент с id submit.
Поместите ваш js код перед </body> или выполняйте его после загрузки страницы.
При событии "click" listener'у в кач-ве аргумента передается только экземпляр "Event", если его назвать как внешнюю переменную, то доступа к ней (внешней переменной) уже не будет.
<div id="todo_root">
<form id="form">
<ul id="todo">
<li><input type="text" id="input"><button id="submit">Добавить</button></li>
</ul>
</form>
</div>
<script>
function createItem() {
var li=document.createElement('li');
li.innerText=element.value;
var ul=document.getElementById('todo');
ul.appendChild(li);
return false;
}
var element =document.getElementById("input");
document.getElementById("submit").onclick=createItem;
</script>