It should be, though it would be nice if browsers let you do enctype=json (and maybe enctype=xml). Json is popular enough at this point that you're more likely to have a high performance, easy to use codec library on the backend vs. FormData.
Form validation probably should have also been done via child tags, not attributes, so that error messages could be independently associated to each validation rule.