I think some crawlers run JS, because a lot of the web simply won't work without JS to initialise the page state these days.
You can use captcha or similar, one workaround I've seen has a submit that is hidden so never clicked by real people then a visible submit that sets a hidden input and clicks the other one which requires the hidden input... not foolproof but avoids some accidents.