Thanks Jarkko! That was the perfect solution... I moved it into the real form and worked flawlessly. Much appreciated.
Side note: You are saying the form needs to come before the table so that the table resides inside the form? I never knew that... never knew there was any difference in the order (or that there should be any difference). On Sun, Oct 17, 2010 at 1:22 PM, Jarkko Laine <[email protected]> wrote: > Hi Phil, > > On 17.10.2010, at 18.15, Phil Petree wrote: > > > OK, I have a form where the first row of the first colum is a checkbox > designed to toggle the checked/unchecked state of all the other checkboxes > in the form (select all/select none). > > > > Problem is, the state of the checkbox with the onclick state is not > getting changed. The rest of the check boxes are toggling based on their > current state and I want to tie them to the "master" checkbox and I'm just > not getting this to work. > > Your HTML code is invalid in a few ways. From a quick glimpse, you have > divs inside tr's and the form element as a direct descendant of table. The > latter especially causes some trouble. At least Safari automatically closes > the form element and thus the checkboxes won't fall within the form. Thus > your code below can't possibly work. > > Here's a quick script that seemed to work (at least in Safari console) with > your example page: > > $('toggle_all').observe('click', function(ev) { > var self = this; > $$('input[type=checkbox]').without(this).each(function(el) { > el.checked = self.checked; > }); > }); > > You probably want to modify the selector to be more precise and maybe make > the whole function more generic, though. > > //jarkko > > > > > A sample page is here: > > http://www.neighborhoodwatchalerts.com/invite/checkboxes.php > > > > The code is this: > > function toggleCheckBoxes(formName) > > { > > // toggle Check Boxes using Prototype Library > > var form = $(formName); > > var i = form.getElements('checkbox'); > > var chkState = ($F('toggle_all') == "on") ? true : false; > > // alert("chkState = " +chkState); // show the current state > > > > i.each(function(item, chkState) > > { > > // item.checked = chkState; // set all checkboxes to the masters > state > > // if (chkState == false) // turn all checkboxes off > > if (item.checked) > > { > > item.checked=false; > > } > > else > > { > > item.checked=true; > > } > > } > > ); > > return true; > > } > > > > Any thoughts or suggestions? TJ, you have have any other shortcuts > tucked away? > > > > Thanks, > > > > Pete > > > > -- > > You received this message because you are subscribed to the Google Groups > "Prototype & script.aculo.us" group. > > To post to this group, send email to > [email protected]. > > To unsubscribe from this group, send email to > [email protected]<prototype-scriptaculous%[email protected]> > . > > For more options, visit this group at > http://groups.google.com/group/prototype-scriptaculous?hl=en. > > -- > Jarkko Laine > http://jlaine.net > http://dotherightthing.com > http://odesign.fi > > Check out my latest book, Unobtrusive Prototype, fresh off the Peepcode > oven: > http://peepcode.com/products/unobtrusive-prototype-js > > -- > You received this message because you are subscribed to the Google Groups > "Prototype & script.aculo.us" group. > To post to this group, send email to > [email protected]. > To unsubscribe from this group, send email to > [email protected]<prototype-scriptaculous%[email protected]> > . > For more options, visit this group at > http://groups.google.com/group/prototype-scriptaculous?hl=en. > > -- You received this message because you are subscribed to the Google Groups "Prototype & script.aculo.us" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/prototype-scriptaculous?hl=en.
