Вы должны действительно выполнить любую логику, связанную с отправкой, в обработчике события submit «FORM», а не «click» одного из элементов FORM. e.g.:
<form ... onsubmit="return validateForm(this);"> ... </form>
Это должно гарантировать, что отправка на основе клавиатуры проходит через ваш обработчик; это также дает вам возможность предотвратить отправку формы, возвращая ложное значение из обработчика события. С другой стороны, любое истинное значение автоматически отправит форму.