>- see footer for list info -< Well, it's another approach, yes. Of course, one would have to be careful with yours to not have it take effect if one ever DID have a Select box with a legit value as the first option. :-) The solution would seem to be to add a boolean attribute to CFSELECT, like FirstOptionAsMessage.
Otherwise, the approach offered in the CFMX 7 docs at least let the developer control the behavior via the HTML select value (using the space). Anyway, there are certainly many approaches to solve the problem. I'm sure they were juggling many use cases and concerns. :-) I think a new attribute would be the most straightforward. /charlie -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Steve Duddell Sent: Thursday, July 13, 2006 11:35 AM To: Coldfusion Development Subject: RE: [CF-Dev] cfselect >- see footer for list info -< IF you can/want to change the cfform.js, thhe fix I did also works, without having to check for a space, or add a space ass the value for the first option ... cfform.js ORIGINAL ... else if (obj_type == "SELECT") { for (i=0; i < obj.length; i++) { if (obj.options[i].selected) return true; } return false; } What I changed it to (only a few extra lines) ... else if (obj_type == "SELECT") { if(obj.multiple) { StartFrom=0; } else { StartFrom=1; } for (i=StartFrom; i < obj.length; i++) { if (obj.options[i].selected) return true; } return false; } ________________________________ From: Charlie Arehart [mailto:[EMAIL PROTECTED] Sent: 13 July 2006 16:18 To: 'Coldfusion Development' Subject: RE: [CF-Dev] cfselect >- see footer for list info -< Here's a solution to making the CFSELECT work as you want, Andrew. First, let me say that I know that many hate any of the CFFORM tags, but I'll clarify that for some uses (like CFSELECT in particular), it's not too bad (dynamically generating select options, doing the JS validation). That said, this issue you raise about using REQUIRED on a single SELECT is indeed one that MM/Adobe seems to have thought about. According to the CFMX 7 docs, you should be able to work-around this. I quote: You can work around this issue: format forms by having an initial option tag with value=" " (note the space character between the quotation marks). This was from: http://livedocs.macromedia.com/coldfusion/7/htmldocs/wwhelp/wwhimpl/comm on/h tml/wwhelp.htm?context=ColdFusion_Documentation&file=part_cfm.htm I've tested it, though, and it's not doing what it would suggest it should. Here's an example: <cfform> <cfselect name="test" required="Yes"> <option value=" ">select an option <option>1 <option>2 </cfselect> <input type="Submit"> </cfform> Note that as of CFMX, you no longer need to bother with a NAME or ACTION for CFFORM, and like a regular <FORM>, if you leave off the ACTION it posts to itself. If you add SIZE="2" and submit it without selecting an item, you get the expected validation for not choosing something, so it's not that there's anything wrong with the code above. It just doesn't seem that their proposed "workaround" really works. I looked at the code in /CFIDE/scripts/cfform.js, which holds the _CF_hasValue function that is called for the validation, and it just doesn't honor this "workaround": else if (obj_type == "SELECT") { for (i=0; i < obj.length; i++) { if (obj.options[i].selected) return true; } return false; If you change it to this, though, it seems to do the trick: else if (obj_type == "SELECT") { for (i=0; i < obj.length; i++) { if (obj.options[i].selected) { if (obj.options[i].value == " ") return false; else return true; } } return false; } The question, then, is whether you want to change this JS file that CFFORM relies on (or even have the security access to do it). I could see it negatively affecting code where someone intentionally left a VALUE as " " and meant for that to be passed through. It would seem that a better solution would be to add an attribute for CFSELECT that enables this "workaround" behavior more intentionally. I'll write a blog entry about this and also point to it in the livedocs. Maybe Adobe can address it in the future. Could be a nice bone for BD to add. :-) /charlie -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Steve Duddell Sent: Thursday, July 13, 2006 9:00 AM To: Coldfusion Development Subject: RE: [CF-Dev] cfselect >- see footer for list info -< I have had the same problem (on 6.1 anyways), was so annoying because I HAD to use CFFORM (wasn't allowed to re-do it as a normal FORM), and HAD to have a first option the same as you (like "Select Whatever"). Having REQUIRED="Yes" is completely useless in a CFSELECT if it is a single SELECT list (or a multiple SELECT with SIZE=1). I had to fix it by editing CF's cfform.js that sits in the CFIDE/scripts directory (which you might not want/be able to do) to do a simple check to see if the SELECT list to check was multiple or single ... if(obj.multiple) ... if it's a single SELECT list, then I made it fail if option 0 was selected. ________________________________ From: Andrew Davidson [mailto:[EMAIL PROTECTED] Sent: 13 July 2006 13:25 To: [email protected] Subject: [CF-Dev] cfselect >- see footer for list info -< Am fixing up someone else's code, and they have a cfselect in there that is set required="yes", which doesn't work at all, in that the first option in the select list, which is along the lines of "Please select an option", still passes the required check (which it shouldn't). I haven't used cfform much myself, so is this correct ? If it is, then that is pretty useless, isn't it ? _______________________________________________ For details on ALL mailing lists and for joining or leaving lists, go to http://list.cfdeveloper.co.uk/mailman/listinfo -- CFDeveloper Sponsors:- >- Hosting provided by www.cfmxhosting.co.uk -< >- Forum provided by www.fusetalk.com -< >- DHTML Menus provided by www.APYCOM.com -< >- Lists hosted by www.Gradwell.com -< >- CFdeveloper is run by Russ Michaels, feel free to volunteer your help -< ************************************************************************ **** Notice: This e-mail and any attachments are confidential and may contain legally privileged information and/or copyright material of Hansen Technologies Limited or third parties. Copying, distributing, disclosing, commercialising or otherwise acting in reliance on this e-mail and any attachments is strictly prohibited unless you are the addressee of this e-mail and have written permission to do so. If you have received this e-mail in error please delete this e-mail (including any copies and attachments) and contact Hansen Technologies Limited by return e-mail or by telephone on + 61 39840 3000. Any views expressed in this e-mail are those of the individual sender and may not necessarily reflect the views of or be a commitment by the organisation, except where the individual sender has the authority and expressly states them to be so. ************************************************************************ **** _______________________________________________ For details on ALL mailing lists and for joining or leaving lists, go to http://list.cfdeveloper.co.uk/mailman/listinfo -- CFDeveloper Sponsors:- >- Hosting provided by www.cfmxhosting.co.uk -< >- Forum provided by www.fusetalk.com -< >- DHTML Menus provided by www.APYCOM.com -< >- Lists hosted by www.Gradwell.com -< >- CFdeveloper is run by Russ Michaels, feel free to volunteer your help -< _______________________________________________ For details on ALL mailing lists and for joining or leaving lists, go to http://list.cfdeveloper.co.uk/mailman/listinfo -- CFDeveloper Sponsors:- >- Hosting provided by www.cfmxhosting.co.uk -< >- Forum provided by www.fusetalk.com -< >- DHTML Menus provided by www.APYCOM.com -< >- Lists hosted by www.Gradwell.com -< >- CFdeveloper is run by Russ Michaels, feel free to volunteer your help -<
