This is breaking the plugin...
errorPlacement: function(error, element) {
$('#hidden').html(error);
}
error
is an object, not HTML, and element
is the input object that triggered the error.
The default function is: error.insertAfter(element)
Whatever the custom function, you really should use error
and element
objects as the plugin automatically toggles the visibility of its error
object.
There are other options you can use if you don't want the messages inside of a label
or if you want all messages to be placed inside another container.
See all options here: http://jqueryvalidation.org/validate/