Having an action on the form makes me nervous. If there's a JS error for some reason, the user will get thrown to a random JSON endpoint rather than failing silently.