Only add 'for' value if errorElement is a label

A 'for' on other types causes problems for screen readers, and is not
valid HTML