I agree with Ryan. I do all my fancy validation on the client. My server side returns a generic error message and a numeric code, which I can cross reference with my private error documentation.
For what it's worth, it's been years since I kicked it old school and did an html form submit. Ajax is a far superior user experience. 100% of my pages are like this: 1) put all my fields on the page, 2) assign a javascript function to a button 3) in the submit function I create an array of the fields I wanna post, including any validation 4) stringify the object and 5) post it using jquery ajax. Google is drowning in examples of this, but here are some code snips for reference. (these examples use jQuery) 1) html has various input elements, like <input type="text" id="username" name="uid" /><input type="password" id="pwd" name="pwd" /> (NOTE: the 'name' attribute is critical - otherwise you'll bang your head on the desk wondering why seralizeArray is skipping your fields.) 2) on the submit button action, either manually reconcile your values, such as: - myobj = {}; - myobj.user = $("#uid").val(); - myobj.pass = $("#pwd").val(); - OR- use jquery's serializeArray to just grab the whole form. - myobj = $(":input").serializeArray() I do it manuallly when I have fields with complex data, or I want to do additional validation. 3) in your ajax call, stringify the data (this will go to the server as a JSON object) $.ajax({ async : false, type : "POST", url : "/myWebPyMethod", data : '{"args":' + JSON.stringify(myobj) + '}', contentType : "application/json; charset=utf-8", dataType : "text", success : function(response) { alert("woot!"); }, error : function(response) { alert("wah wah wah...."); } }); 4) in web.py get hold of your args def myWebPyMethod(self): try: import json data = web.data() foo = json.loads(data) print foo print foo["user"] except Exception, ex: raise ex Have fun! On Thu, May 24, 2012 at 10:24 PM, Ryan Sears <fitb...@gmail.com> wrote: > What I usually do is verify everything client-side with javascript to do > all the fancy red letters and shaking or what have you, then make sure > every piece of data is what I think it is, server-side, and return a > generic error if it's not. That way clients get a full UI experience, and > evil hackers get to spend more time figuring out how to attack my > application :-P. > > Probably not the best way to do it, but it works for me! > > Fitblip > > > > On Thu, May 24, 2012 at 6:53 PM, Bill Seitz <flux...@gmail.com> wrote: > >> Under lots of conditions, you want the outcome of server-side >> rejection of a form to be >> (a) send the user back to the form with all the data they entered >> (b) stick a red error/alert message near the top >> (c) possibly stick red alerts next to specific fields >> >> Is there a nice example app showing the smart way to do those? >> >> -- >> You received this message because you are subscribed to the Google Groups >> "web.py" group. >> To post to this group, send email to webpy@googlegroups.com. >> To unsubscribe from this group, send email to >> webpy+unsubscr...@googlegroups.com. >> For more options, visit this group at >> http://groups.google.com/group/webpy?hl=en. >> >> > -- > You received this message because you are subscribed to the Google Groups > "web.py" group. > To post to this group, send email to webpy@googlegroups.com. > To unsubscribe from this group, send email to > webpy+unsubscr...@googlegroups.com. > For more options, visit this group at > http://groups.google.com/group/webpy?hl=en. > -- You received this message because you are subscribed to the Google Groups "web.py" group. To post to this group, send email to webpy@googlegroups.com. To unsubscribe from this group, send email to webpy+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/webpy?hl=en.