Selects would be horrible. If you don't believe me, code
yourself a form and then write the necessary client side validation
to ensure that you don't submit an invalid date, like 2006-02-29.
One of my pet peeves is that all applications should be
equally useable to keyboard pounders as they are to mouse pullers.
That's my knock against the cfcalendar tag, you can't tab into it
if you have an html form.
Regarding js calendars, there are lot's of them out there.
They all work slightly differently.
Text boxes are simple. Here is how I usually code them. Bear
in mind that do intranet, not internet programming, Among other
things, I don't have to worry about users disabling their
javascript.
<cfinput type="text" size="10" maxlength="10"
value="#session.injurydate#"
message="Injury Date Must Be a Date" mask="9999-99-99"
name="injurydate" validate="date" validateat="onsubmit">