- It can slow down the user experience.
- Standard HTML form and browser controls are the way they are for a reason: They work. Subvert or reinvent them at your peril.
- It's much more likely Javascript code won't work as expected in all browsers, than HTML.
- When some part of it breaks, forcing the user to disable it, they won't be able to use the rest of the website
- Not all browsers have javascript, for example Lynx (text only) and JAWS (i.e. screen readers which blind people use).
- It often makes automated testing harder
- When the user gets logged out due to inactivity, the AJAX calls may behave unexpectedly
Disclaimer: This is my opinion only, based on personal experience.