The .each is the problem: if(data.status == false) { // update form errors $("#calib_entry").validate().showErrors(data.errors); }
On May 7, 10:35 am, Brad <nrmlcrpt...@gmail.com> wrote: > I'm using the validation plugin to perform client side validation on a > form that uses $.post. > To be safe, I also re-validate all inputs on the server side. Ideally > I'll never have a case where client-side validation passes but server- > side validation fails, but in case I do, I want to display errors back > that the browser. > > I have my server side code returning a JSON object. It contains a > status, an errors object, and an info object. The errors object may > contain multiple errors. > > $.post("ajax.php", > formdata += '&from=calib&type=submit', > function(data){ > if(data.status == false) { > // update form errors > $.each(data.errors, function(fld,msg) { > console.log(fld,msg); // See what's coming back. Looks OK! > var v = $("#calib_entry").validate(); // because of scoping > issues I need to redefine validator > v.showErrors({fld:msg}); // <= This is throwing a jQuery error > }); > } > ... > }, > 'json' > ); > > I'm testing my server side validation and have hard-coded bad value so > validation will fail. > When I call v.showErrors Firebug is showing an error within jQuery > itself. Unfortunately the server I'm working against has a minified > version installed (I've requested they install the full version). > > Until I can see where jQuery is failing, can someone who is more > familiar with showErrors tell if the problem is how I'm calling it? > The console.log call shows that fld and msg are both strings. > > Thanks, > > Brad