Другие ответы верны, но вы можете избежать всех этих проблем, используя jQuery более правильно.
Вместо встроенного JavaScript внутри тега формы, добавить идентификатор к форме, то есть такой код:
$(document).ready(function() {
$("#myform").bind("submit", validate);
});
Форма должна теперь выглядеть следующим образом:
<form id="myform">
И не забудьте чтобы добавить return false;
к самой функции, чтобы предотвратить подачу.
Внутри функции JS корректно обрабатывает validate
как функцию - когда встроенный внутри тега формы, он смотрел сначала в элементах формы и нашел кнопку - следовательно, вы получили ошибку.
хороший ответ - я бы определенно использовал привязку jQuery для встроенных функций. –