Does it need to be any more complicated than $
('machine_user_id').selectedIndex = whatever (check that I got the
dom_id of your select box right ?)
if you also want to change the images on the links you'll probably
make life easier for your self if the image for the link is a css
property.
The problem is that is the collection select object is repeated in a
table of objects so this ID appears multiple times. To deal with it I
created a <form id ="#{machine.fqdn}"> .... collection_select object </
around each of these and tried to refer to them using $("#
{machine.fqdn}").machine_user_id.selectedIndex=whatever, but the
prototype $() function does not seem to want to take a variable. It
seems to work with a static id, but not a variable one. Any ideas how
this could be done?
The problem is that is the collection select object is repeated in a
table of objects so this ID appears multiple times. To deal with it I
created a <form id ="#{machine.fqdn}"> .... collection_select object
</
> around each of these and tried to refer to them using $("#
{machine.fqdn}").machine_user_id.selectedIndex=whatever, but the
prototype $() function does not seem to want to take a variable. It
seems to work with a static id, but not a variable one. Any ideas how
this could be done?
Having multiple elements on a page with the same dom id is a super
super bad idea. Instead of creating that form with that special id,
why not give that id to the select box ?
The $ function is just a regular function - it doesn't care whether
its argument is a literal, a function call or something else.
Regardless, '.machine_user_id' is not how you would find the child of
a certain element. If you want the child of an element matching a
given css selector use the down function.
Is there a way to tell collection_select to use a specific ID then
other than machine_user_id. That is what I was originally trying to
do so I did not have to go down into the object from the form .
I was trying to get around it by using a call to a form $("#
{machine.fqdnj}").machine[user_id].selectedIndex= and it did not seem
to work. When I was trying this with a standard html setup with
prototype I found that it would not accept a variable being passed
into $() but if I set the name using a static name it seemed to work.
Is there a way to tell collection_select to use a specific ID then
other than machine_user_id. That is what I was originally trying to
do so I did not have to go down into the object from the form .
Of course!
collection_select(:machine, :user_id, @users, :id, :fullname,
{:include_blank => true}, {:id => 'foo'})
It's just an html option