<story><title>Parsley.js: never write a single JavaScript line to validate your forms</title><url>http://parsleyjs.org</url></story><parent_chain></parent_chain><comment><author>jonnytran</author><text>Has anyone had any experience where adding or removing client-side validation has affected conversion?&lt;p&gt;Other comments talked about client-side validation being mainly for UX and user convenience. But I&apos;m wondering if it has a noticeable effect on whether or not people actually submit the form all the way to completion (i.e. no errors).&lt;p&gt;I made a tool that I have server-side form validation. I found that saving the invalid input so that I could examine it later was extremely valuable in understanding what people were entering, so that I could make the tool smarter. A good example is like with Parsley&apos;s demo where it requires &lt;a href=&quot;http://&quot; rel=&quot;nofollow&quot;&gt;http://&lt;/a&gt; for the website URL. After seeing that people tried to enter URLs without &lt;a href=&quot;http://&quot; rel=&quot;nofollow&quot;&gt;http://&lt;/a&gt;, I knew I could change my code to automatically infer it. &lt;a href=&quot;http://&quot; rel=&quot;nofollow&quot;&gt;http://&lt;/a&gt; is obvious, but a lot of times, people will surprise you. I don&apos;t have stats, but presumably this kind of change increases conversion. I realize this anecdote is a different effect than what I&apos;m asking about client-side validation.</text></comment>
<story><title>Parsley.js: never write a single JavaScript line to validate your forms</title><url>http://parsleyjs.org</url></story><parent_chain></parent_chain><comment><author>jiggy2011</author><text>This is a clean way to solve the low hanging fruit of form validation, stuff like isItAnEmailAddress().&lt;p&gt;What I always find messy in web frameworks is doing validations which are more complicated.&lt;p&gt;For example a radio button choice which hides another form element which would otherwise be mandatory but should now not be filled in at all. Or where supplying a value between certain dates changes another date field from optional to mandatory and also must check that these dates are between certain values dictated by the first date field.</text></comment>