No, that does not work either. I also tried 'true' and 'checked' but to no avail...
The weird thing is, FF2 even behaves that way after I reload the page. Like this: 1. I click on the link, all checkboxes become checked 2. I uncheck two of them 3. I click the link again, nothing happens, the two are still unchecked 4. I reload the page (F5 or click on reload), all checkboxes become unchecked 5. I click the link, all checkboxes EXCEPT the two I unchecked before become checked Seems like FF2 saves the state of these two checkboxes in some way. To make it EVEN weirder (at least to me), if I don't reload the page by F5 or a click on the Reload button in step 4, but click in the command line and on Enter, without changing the URL, ALL the checkboxes become checked if I click on the link again... Could somebody test this behavior with FF2 WinXP? Perhaps it's one of my extensions or something else. Also, a test with another browser/OS other than IE7 or FF2 on WinXP would be nice. /z On Apr 28, 7:25 pm, kangax <[EMAIL PROTECTED]> wrote: > Try passing "true" explicitly: > ... > $$('*[id^="match_this_"]').invoke('writeAttribute', 'checked', true); > > - kangax > > On Apr 28, 12:34 pm, zoopzoop <[EMAIL PROTECTED]> wrote: > > > Follow-up question: > > > I played around a bit and changed my design. > > Now I have some checkboxes (still with ids starting with > > "match_this_") and want to check them all with a click on a link. > > > function selectAllCheckboxes() { > > $$('*[id^="match_this_"]').invoke('writeAttribute', 'checked'); > > > } > > > This works fine in IE7 but not in FF2. > > In FF2, it works when I click it the first time but then, when I > > uncheck some checkboxes and click the link again, they don't become > > checked again. > > I don't get any JS error in the error console or Firebug either. > > Does the writeAttribute function have some quirks in FF2? > > > /z > > > On Apr 28, 5:41 pm, kangax <[EMAIL PROTECTED]> wrote:> Thanks, T.J. : ) > > > > I'm still in doubt, though, whether "elegant" code is better than > > > straightforward one. > > > If it wasn't straight-obvious for you what the snippet does, there's a > > > big chance it won't be obvious for another developer looking at it (or > > > to myself in half a year) :) > > > > - kangax > > > > On Apr 28, 9:36 am, "T.J. Crowder" <[EMAIL PROTECTED]> wrote: > > > > > @kangax - > > > > > > elements.shift().observe('click', function(e) { > > > > > elements.invoke('writeAttribute', 'disabled', e.target.checked); > > > > > That is just so...elegant. Took me a while to figure it out (missed > > > > that part of the OP's question) and *wow* would I comment it, but > > > > seriously: Nice. > > > > -- > > > > T.J. Crowder > > > > tj / crowder software / com > > > > > On Apr 28, 12:23 am, kangax <[EMAIL PROTECTED]> wrote: > > > > > > I'll try to be careful this time. > > > > > > 1) Straight-forward way, only checks whether id starts with a string: > > > > > var elements = $$('input[type="checkbox"][id^="match_this_"]'); > > > > > > 2) A little more precise (based on regexp): > > > > > var elements = $$('input[type="checkbox"]').findAll(function(el) > > > > > { return /^match_this_\d$/.test(el.id) }); > > > > > > Then: > > > > > > elements.shift().observe('click', function(e) { > > > > > elements.invoke('writeAttribute', 'disabled', e.target.checked); > > > > > > }) > > > > > > - kangax > > > > > > On Apr 27, 6:40 pm, zoopzoop <[EMAIL PROTECTED]> wrote: > > > > > > > Hi! > > > > > > > I want to (as the topic suggests) get a list/array of all elements > > > > > > on > > > > > > a page whose id starts with a string using Prototype. > > > > > > For example, I have several checkboxes like this: > > > > > > > <input type="checkbox" id="match_this_1"> > > > > > > <input type="checkbox" id="match_this_2"> > > > > > > <input type="checkbox" id="match_this_3"> > > > > > > <input type="checkbox" id="match_this_4"> > > > > > > > I want to find these elements on my page based on the fact that > > > > > > their > > > > > > ids start with "match_this". > > > > > > Then I want to assign a onclick-function to the first checkbox that > > > > > > disables all the other ones. > > > > > > Can somebody help me out with how to do this with Prototype? --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Spinoffs" group. To post to this group, send email to rubyonrails-spinoffs@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/rubyonrails-spinoffs?hl=en -~----------~----~----~----~------~----~------~--~---