Text field with auto complete to look up ID... again

I’m getting a bit frustrated with it.

I’d like to populate a hidden field with the ID so I don’t have to
find_by_foo_bar afterwards (and thus take yet another database hit [oy
my poor database] and risk ambiguous fields) or uglify the dropdown with
an ID number.

Now, this works:

person.org_name => “org: person”

_form.rhtml:

<%= text_field_with_auto_complete :person, :name %> <%= hidden_field :association, :person_id %> <--- the field I want populated

_people.rhtml:

    <% for person in @people do -%>
  • <%= h person.org_name %>
  • <% end -%>

… but ONLY for clicks (and onmouseover). onselect, onkeypress, etc…
do nothing, so it doesn’t work for tab or enter. And I can’t access the
id from after_update_element 'cause the popup is no longer there to get
queried and all I can access is the text field itself and the selected
value (ie the result of person.org_name rather than person.id). (Or can
I? If so I don’t know how. :-/)

Any help?

Also, when I’m using autocomplete in a sub-sub-form the popup doesn’t
show. :confused: When it’s just in a form or subform it does, though. And I can
tell it’s getting called 'cause I see it on the log tail. I set
position:absolute; in CSS; anything else that could do it?

  • Sai

I’m not sure it’ll answer all your questions, but check out my article
on the subject here…

http://blog.wolfman.com/articles/2006/10/23/getting-a-record-id-from-text_field_with_auto_complete

I hope it helps.

saizai wrote:

<% for person in @people do -%>
id from after_update_element 'cause the popup is no longer there to get

  • Sai


Jim M., http://blog.wolfman.com

Jim M. wrote:

I’m not sure it’ll answer all your questions, but check out my article
on the subject here…

Wolfmans Howlings

That sounds like the text field will display “23,foo,bar”. Which is
rather ugly. :confused:

The page you linked to just does the same thing - makes the first field
‘id’; hides it in the dropdown but it’ll be displayed as selected once
something is chosen. Ugly UI. :frowning: And then it uses that to populate other
fields on the after-update call.

But I’d like a way to reliably populate a hidden field with the hidden
‘id’ part of the popup no matter how selected, and have the text field
just show the prettified name.

Sai E. wrote:

‘id’; hides it in the dropdown but it’ll be displayed as selected once
something is chosen. Ugly UI. :frowning: And then it uses that to populate other
fields on the after-update call.

But I’d like a way to reliably populate a hidden field with the hidden
‘id’ part of the popup no matter how selected, and have the text field
just show the prettified name.

Ok that link does hide the id, which is not the link it was meant to
point to :slight_smile:

Here is where the link should have pointed to…

http://wiki.rubyonrails.org/rails/pages/How+to+use+text_field_with_auto_complete/versions/67
about half way down, it has a nicer way to do it, but I have not tried
that method.

There is another method here that uses javascript to write the id into a
hidden_text field, I have
used that method.

http://ricardo.pacheco.name/blog/articles/2006/09


Jim M., http://blog.wolfman.com

FYI I updated my blog with the correct links, and added two more ways of
doing I found.

Jim M. wrote:

‘id’; hides it in the dropdown but it’ll be displayed as selected once
Here is where the link should have pointed to…

http://wiki.rubyonrails.org/rails/pages/How+to+use+text_field_with_auto_complete/versions/67
about half way down, it has a nicer way to do it, but I have not tried that method.

There is another method here that uses javascript to write the id into a hidden_text field, I have
used that method.

http://ricardo.pacheco.name/blog/articles/2006/09


Jim M., http://blog.wolfman.com