Первое, проверка корректности данных должна быть на клиенте и на севере, а не только на клиенте как у вас.
Второе, спам может пройти проверку корректности на клиенте и сервере, а поскольку спам машина, ей можно подписать инпут с display: none; и именем типовым типа last_name. Проверяем на клиенте и сервере поле, если заполнено то не отправляем, можно ещё код 200 вернуть для бота, а если и это проходит то тогда капчу Гугла вешайте невидимку или галку на форму.