Hi all. I’m a relatively new Rails and Javascript user, and I’m having
some problems dealing with a date_select helper. Here’s the basic
situation that I already have working. I have a table and a live search
page where a user can type in partial phrases to match against the
various fields. Most of the fields are text_fields, but there is a
text_field_with_auto_complete and a select as well. I have an
observe_field for each input field and it builds up a search query and
updates the search results. All of these fields are in a
form_remote_for form so I can do all the AJAX goodness. So far so good.
Now we want to add a field that is a datetime. The first problem I see
with the date_select is that it has default values, as opposed to being
blank until filled in like the other fields. I don’t want the search
narrowed by this date field until the user actually sets part of the
date. After some thought I disabled the fields on page load and added a
checkbox to enable the fields, so it visually looks like it’s not part
of the search. Some simple Javascript and enable or disable the
date_select fields as the user checks the box. This is where things
start getting ugly.
-
Can I specify the name of the form_remote_for somehow? Nothing I
tried worked right. My current jury-rig is to get document.forms[0],
but that’s a little brittle - if I add another partial it might move to
forms[1] or the like. Looking at the page source there’s no name given
at all. -
The names of the date_select fields are crazy for Javascript.
Specifically they end up being something like
“text_line[recording_submit_date(1i)]” So I can reference
document.forms[0].checkboxname.checked, but I can’t reference
document.forms[0].text_line[recording_submit_date(1i)]. How do I get
ahold of these fields from Javascript? -
I punted on that for now and grabbed them by numeric ID (like
this: form.childNodes[1].childNodes[21]) That’s even more brittle and
is going to break the next time I touch this form, but it was a start.
Now I’m finding that I can’t create an observe_field helper either, and
I’m guessing that might be due to the crazy names.
I realize that there are probably other plug-ins I can get to handle
date fields differently, but this seems like a simple problem, but it’s
also one of those problems where at four hours ago I started on
something I expected to spend 30 minutes on and I’m still at it. If
anybody knows a solution that uses the default Rails date_select I’d
love to hear it.