Ha!  I knew there had to be a shorter way to do this!

Thanks!

On Mon, Apr 1, 2013 at 3:53 PM, Jason Westbrook <jwestbr...@gmail.com>wrote:

>
> Prototype has a method for what you are trying called any()
>
> http://api.prototypejs.org/language/Enumerable/prototype/any/
>
> you create an iterator function and pass it to any
>
>
>     var elmName = "input:checkbox[name='" +element.name +"']";
>     var bChecked = false;  // not validated
>     var anychecked = $$(elmName).any(function(n) {
>          return n.checked;
>     });
>
>     anychecked will be true or false
>
>
>
> Jason Westbrook | T: 313-799-3770 | jwestbr...@gmail.com
>
>
> On Mon, Apr 1, 2013 at 10:49 AM, Phil Petree <phil.pet...@gmail.com>wrote:
>
>> // this works with names that contain spaces and arrays[]...
>>
>> Validation.add('validate-one-array', 'Error message text',
>> function(value, element) {
>>     var elmName = "input:checkbox[name='" +element.name +"']";
>>     var bChecked = false;  // not validated
>>     $$(elmName).each(function(elm) {
>>        if( $(elm).checked )
>>          bChecked = true;     // if one is checked, we validated
>>     });
>>     return bChecked;
>>   });
>>
>>
>> On Mon, Apr 1, 2013 at 1:15 PM, Jason Westbrook <jwestbr...@gmail.com>wrote:
>>
>>> typically when I build forms like that I have a database that is giving
>>> me all the data so I only have to update the loop once for all the
>>> checkboxes :-)
>>>
>>> but yes you can use the $$() Selector method to use the names - I think
>>> you have to do it this way though
>>>
>>> $$("input[name='kitcat[]']:checked")    //but I'm not sure how Sizzle
>>> will handle the bracket in the name
>>> or
>>> $("input[name^='kitcat']:checked")     //this is probably more safe but
>>> it will match more elements as it gets all elements that have a name
>>> attribute that starts with "kitcat" (starts with is ^= instead of =)
>>>
>>>
>>>
>>>  Jason Westbrook | T: 313-799-3770 | jwestbr...@gmail.com
>>>
>>>
>>> On Sun, Mar 31, 2013 at 11:46 AM, Phil Petree <phil.pet...@gmail.com>wrote:
>>>
>>>> Hey Jason... I guess the rest of the group are all slugs! How dare they
>>>> take Easer off! LOL
>>>>
>>>> I had kinda come to the same conclusion... what I implemented was:
>>>>       if($$('input:checked').length > 0)
>>>>         return true;
>>>> This kind of works because the ONLY input on this page are checkboxes
>>>> (think of a wizard) but I was really looking to pass names (kitcat[]) in so
>>>> that it could be more flexible and accomodate future mods.
>>>>
>>>> In your method, I need to mod all 17 checkboxes to include the same
>>>> class name which is currently: "validate-onein-group"
>>>>
>>>> Is there a way to collect all checkboxes with the same name?
>>>>
>>>>
>>>> On Sun, Mar 31, 2013 at 11:54 AM, Jason Westbrook <jwestbr...@gmail.com
>>>> > wrote:
>>>>
>>>>> Try adding a separate class to all of your checkboxes that are in the
>>>>> group and then do this
>>>>>
>>>>> if( $$('.groupchecks:checked').length == 0 )
>>>>> {
>>>>>     //no checked checkboxes
>>>>>
>>>>> {
>>>>>
>>>>> Jason Westbrook | T: 313-799-3770 | jwestbr...@gmail.com
>>>>>
>>>>>
>>>>> On Sun, Mar 31, 2013 at 8:30 AM, Phil Petree <phil.pet...@gmail.com>wrote:
>>>>>
>>>>>> Happy Easter!
>>>>>>
>>>>>> I have an array of checkboxes on a form (about 15 of them) arranged
>>>>>> in rows like this:
>>>>>> <tr><td><input type='checkbox' name='kitcat[]'
>>>>>> ...></td><td>name</td><td>description</td></tr>
>>>>>>
>>>>>> What I have been trying to use is this:
>>>>>> $("input:checkbox[name=kitcat]:checked").each(function() {
>>>>>>     // if one is checked, we validated
>>>>>>     return true;
>>>>>> });
>>>>>>
>>>>>> What I'm getting is an error saying: Unable to get value of the
>>>>>> property 'each': object is null or undefined
>>>>>>
>>>>>> What's the trick to this?
>>>>>>
>>>>>> --
>>>>>> You received this message because you are subscribed to the Google
>>>>>> Groups "Prototype & script.aculo.us" group.
>>>>>> To unsubscribe from this group and stop receiving emails from it,
>>>>>> send an email to prototype-scriptaculous+unsubscr...@googlegroups.com
>>>>>> .
>>>>>> To post to this group, send email to
>>>>>> prototype-scriptaculous@googlegroups.com.
>>>>>> Visit this group at
>>>>>> http://groups.google.com/group/prototype-scriptaculous?hl=en.
>>>>>> For more options, visit https://groups.google.com/groups/opt_out.
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>>  --
>>>>> You received this message because you are subscribed to the Google
>>>>> Groups "Prototype & script.aculo.us" group.
>>>>> To unsubscribe from this group and stop receiving emails from it, send
>>>>> an email to prototype-scriptaculous+unsubscr...@googlegroups.com.
>>>>> To post to this group, send email to
>>>>> prototype-scriptaculous@googlegroups.com.
>>>>> Visit this group at
>>>>> http://groups.google.com/group/prototype-scriptaculous?hl=en.
>>>>> For more options, visit https://groups.google.com/groups/opt_out.
>>>>>
>>>>>
>>>>>
>>>>
>>>>  --
>>>> You received this message because you are subscribed to the Google
>>>> Groups "Prototype & script.aculo.us" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send
>>>> an email to prototype-scriptaculous+unsubscr...@googlegroups.com.
>>>> To post to this group, send email to
>>>> prototype-scriptaculous@googlegroups.com.
>>>> Visit this group at
>>>> http://groups.google.com/group/prototype-scriptaculous?hl=en.
>>>> For more options, visit https://groups.google.com/groups/opt_out.
>>>>
>>>>
>>>>
>>>
>>>  --
>>> You received this message because you are subscribed to the Google
>>> Groups "Prototype & script.aculo.us" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to prototype-scriptaculous+unsubscr...@googlegroups.com.
>>> To post to this group, send email to
>>> prototype-scriptaculous@googlegroups.com.
>>> Visit this group at
>>> http://groups.google.com/group/prototype-scriptaculous?hl=en.
>>> For more options, visit https://groups.google.com/groups/opt_out.
>>>
>>>
>>>
>>
>>  --
>> You received this message because you are subscribed to the Google Groups
>> "Prototype & script.aculo.us" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to prototype-scriptaculous+unsubscr...@googlegroups.com.
>> To post to this group, send email to
>> prototype-scriptaculous@googlegroups.com.
>> Visit this group at
>> http://groups.google.com/group/prototype-scriptaculous?hl=en.
>> For more options, visit https://groups.google.com/groups/opt_out.
>>
>>
>>
>
>  --
> You received this message because you are subscribed to the Google Groups
> "Prototype & script.aculo.us" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to prototype-scriptaculous+unsubscr...@googlegroups.com.
> To post to this group, send email to
> prototype-scriptaculous@googlegroups.com.
> Visit this group at
> http://groups.google.com/group/prototype-scriptaculous?hl=en.
> For more options, visit https://groups.google.com/groups/opt_out.
>
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Prototype & script.aculo.us" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to prototype-scriptaculous+unsubscr...@googlegroups.com.
To post to this group, send email to prototype-scriptaculous@googlegroups.com.
Visit this group at 
http://groups.google.com/group/prototype-scriptaculous?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to