New ColdFusion Error: Form Entries Incomplete Or Invalid
Posted June 12, 2007 at 10:06 AM by Ben Nadel
I just got a ColdFusion error that I have never seen before:
Form entries incomplete or invalid. Please go back an correct the problem.
Here is the uber-useful ColdFusion error screen:
| || || |
| || |
| || || |
This is about the most useless ColdFusion error ever! How could I even go about debugging this? They don't even give me a template or a line number or even what FORM value they might be talking about. I started commenting out all the code I had just put in until I narrowed it down to this code:
Ahhh, then it hit me. TIME. This form field ends with the word "Time." This has to be one of ColdFusion's worst features every brought / kept into existence; because this form field ends with "time," ColdFusion will try to validate the form field "usage_cap" as being a valid time value.
Does anyone even use this ColdFusion validation style? How do you sleep at night :)
It's not "time" - it's "_time"
Solution - use camelCase not underscores :)
Yeah, there are a few of those that trigger the autovalidation. Like _required for example.
We should have asked for an application-wide setting to disable that 'feature'.
I haven't seen anyone actually use the convention validation, I have seen folks spend a lot of time trying to diagnose the resulting, and unintentional, error.
Put it in the same bucket as <cfinsert> and <cfupdate>
Crazy! I didn't realize it would even do that for an INPUT tag. I thought it only matters if you use CFINPUT / CFFORM.
Yeah it is crazy :) I think was left over from the days before any real validation was available or something. I think it is time that ColdFusion dumped this from its backwards-compatability.
Yes and _required and _numeric have caught me in the past when just using the names that someone else used for data in the database!!
Took me hours to debug the first time. Now I warn all students who attend my calsses so that hopefully it won't get them too.
Here's a funny couple ones, try _applied or _employed. Those seem to fail for me no matter what. I definitely agree that this is as dumb of a feature as building an application server on java (I have to restart it or close file handles just to modify .html files.) The development cycle of using coldfusion is hilarious compared to more professional solutions.
That is so crazy that those would fail. They don't even make sense (from a validation standpoint).
I asked around for some kind of reference to a list of these 'dumb' names. It was suggested that they don't even have a list of them. I dug around for a while and found these urls...
So this isn't the only place having a blast with this error. Maybe the new Adobe purchase of the good stuff as well as the bad stuff *cough*coldfusion*cough* will allow them to make it better, ha, ha ha, that's funny.
That list on the LiveDocs is pretty big. They really just need to get rid of this feature altogether or just use the _cfformurl style notation that won't be confused with other valid field names.
It's not just the "time" I had fields ending in "date","creditcard", "digits", etc... and each one of those had the same thing trailed by a "_msg". I cured the problem by ending the value form element with an "_1" and the message form element with a "_2" just so that it was easy to process the forms with the message for each one. This is for a jQuery validation generator that i'm working on that allows you to go through a gui to build your validation and to override the built in validation.
Either way, i know if i see this sucker come up again that it has to do with the naming convention.
You saved me time with this post, thank you!
Thanks so much for your post. I've been debugging a related error for about two hours now. It was especially odd in that I had two fields, START_NOTICE and START_NOTICE_TIME. Two fields, one with a date and one with the time. Well, for some strange reason, my field START_NOTICE starts taking on the value of "0" and spitting out "1899-12-30" in the FORM scope! After reading this post, I changed the name of START_NOTICE_TIME to START_NOTICETIME and it just all worked! Somehow the validation on the time field was affecting the related field START_NOTICE. I think that is even stranger than the problem with the "_time" in the field name. At least it has stopped. :-)
Yeah, that's some old-school, built-in validation. Nobody likes it; I am not sure why it is even still part of ColdFusion.
thanks for clarifying this. I ran into the exact same problem with a form field called 'invoice_date'. It was working until today, which was very strange. I did add a file upload form field today, so I wonder if it has something to do with that.
i ran into the same problem where text field name was "signature_required"
You just saved my day in a pinch!
Glad to have been a help :)
But wait! It gets worse!
I would get an error like the one above on the fields item_arrival_time and item_departure_time, too, depending NOT on the content of those same two fields, but on the content of two different ones (item_departure and item_arrival) being a valid date or not.
It has driven me crazy (when I least needed it)!
If I wanted coldfusion's built-in validation, I'd have used cfform and cfinput, thank you.
I see now that Brad had already reported the same problem. Sorry for the useless post!
Voicing a problem with ColdFusion is never "useless". Hopefully, the more people that complain about this implicit validation, the more likely they will to finally remove it from the language. I don't think anyone actually uses this on purpose.
I just got one. "Price" by itself with no CFFORM tag in use.
I just had another one. I named my field pub_discl and it gave me this Form Entries Incomplete or Invalid. It's really crazy. I was able to rename to something else after I saw all of your posts. Thank you!
Funky! I wonder what "discl" could even represent in the form validation.
Cripes. I just got this error for the first time in my CF "lifetime" today. Talk about freaking hard to figure out. Adobe, sometimes, you're trying too hard to be helpful. Don't validate unless we *ask* you to. ;-)
The good news is in CF9, you can actually turn this off! Sweet!
That is great, but at the moment, I'm going to have to wade through 250 form fields (across many pages) and hunt this bugger down.
Awesome! Thanks for saving me so much time. So obvious after seeing your post.
Just saved me a lot, a lot, a lot of time. Thanks!
Thank you for your post http://www.bennadel.com/blog/767-New-ColdFusion-Error-Form-Entries-Incomplete-Or-Invalid.htm regarding the usless message "Form entries incomplete or invalid".
In my case the data was 2010-03-01. When I commented out the date it worked, but unlike you I didn't realize the problem was my form ended with "date".
Changing the last field on the form from certified_date to date_certified corrected the problem.
I'm just adding another "cheers for blogging this" note: I just got bitten on the bum by this and it was doing my head in as to WTF was going on, until I read your blog post. So: cheers!
I'm developing an app for BlueDragon (bleah, but not my call), and notionally have to have it working on CF8 & 9 as well. BD - bless - doesn't have this stupid validation "feature" it seems, so everything was fine until I came to test something on CF. Boom.
I'm now used to pulling my hair out over the vagaries of BD compared to CF... this is the first occasion I've been pulling my hair out because of a CF "vagary" (although, to be frank, BD *should* implement everything CF does, even if the CF "feature" is a dumb idea).
Glad to help. Not that this is a help to you right now (maybe), but at least they *finally* built it into ColdFusion 9 that you can disable this functionality in the CF Administrator.
Yeah, this is just a ridiculous error. Honestly, I am surprised that anyone ever used it. I can't see how this feature was ever functional. I mean, look at the error! It's not like the user would even know what to do with it.
Apparently RECORDER has issues as well.
Thanks for the aspirin er help.
Really?? I wonder what kind of validation that would even be in reference to? What is a recorder?
Just want to chime in with another thank you for posting. How insane! Mine was blah_blah_required. What a useless error message!
Glad this helped. If you are upgrading to ColdFusion 9 any time soon, you can actually turn this feature off (or so I'm told).
This post should be updated to point to Ray's solution, however!
Ray's solution is definitely good.
Well, it's partially your solution too! Let's call it the shared solution that saved us all lot's of time!
I'm just glad there's a way to finally disable this in ColdFusion 9 :)
How gay is this "feature"!!! Thank god you had this entry Ben - I had just created a field called finance_required and started getting this error. As my attention span is diminishing as I approach 40 I'd forgotten I'd added the field this morning..
It's definitely a feature that I'm happy you can *finally* disable in ColdFusion 9.
Once again you save my day Ben. Just migrated from Railo to CF9 and that error was everywhere, I was on the verge of tears...
The good news is that in CF9, you should be able to disable this feature in the ColdFusion admin without having to change your code.
I had the same problem. The name the field was registration_required. I replaced it by registration_needed and the problem was solved.
Sweet to finally know what causes this error. I've always been able to work around it by ultimately by appending "_1" to the offending variable, but I never knew why I had to!
You guys are just too young to remember when this was a very useful feature of standard HTML! And I am so old that I forgot all about it. There is even a good chance some of my old clients still have it in their code.
I knew there was a reason I never used underscores in forms. Thanks for the reminder Ben!
Yeah, I've gotten used to using camelCase in my form variables (well, pretty much everywhere actually). And, I'm loving the shift. The problem is, I have loads of old code that uses "_" as the term separator for *everything*. It try to err on keeping an app consistent rather than mix-n-matching; though, sometimes, I can't resist using camelCase despite the inconsistency - it's just so much nicer (in my opinion).