There is a TimedObserver[1] that watches the entire form for changes  
every N seconds, take a look at Form.Observer and  
Form.Element.Observer and see if those work for you.

I don't believe these focus/blur events bubble to the form, though  
(not in all browsers, anyway). Do you need to observe all elements, or  
only some of them? You could add a class to the ones you really need  
to observe, and get them like this: $$('#myForm input.someClass') for  
further extension. That might be a good trade-off between performance  
and utility.

Walter

1. http://prototypejs.org/api/timedObserver

On May 21, 2009, at 11:24 AM, louis w wrote:

>
> Is there no way to only have one observer for the entire form? I was
> trying to cut down on memory by not assigning an observer to every
> element (it's a big form)
>
> On May 21, 11:12 am, Walter Lee Davis <wa...@wdstudio.com> wrote:
>> If you give your text field an ID, you can observe its focus  
>> directly.
>> Or, if you don't add IDs, you can use a loop over all of the elements
>> in the form (or only the inputs) with one or another of these:
>>
>> $('editForm').getElements().invoke('observe','focus',function(evt)
>> { ...inside here, 'this' will be your element... });
>> $('editForm').getInputs().invoke('observe','focus',function(evt)
>> { ...same as above... });
>>
>> Walter
>>
>> On May 21, 2009, at 11:06 AM, louis w wrote:
>>
>>
>>
>>> Is it possible to create an event observer which will detect when a
>>> field is focused?
>>
>>> I have tested this out by trying to assign it to the parent form
>>> (figuring the event would bubble up) however nothing happens.
>>
>>> This is what I have:
>>
>>> <script language="javascript" type="text/javascript">
>>>    document.observe('dom:loaded', function() {
>>
>>>            $('editForm').observe('focus', function(evnt){
>>>                    console.log('FOCUS!');
>>>            });
>>
>>>    });
>>> </script>
>>
>>> <form method="post" name="editForm" id="editForm" action="">
>>>    <input type="text" name="foobar" />
>>> </form>
> >


--~--~---------~--~----~------------~-------~--~----~
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 prototype-scriptaculous@googlegroups.com
To unsubscribe from this group, send email to 
prototype-scriptaculous+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/prototype-scriptaculous?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to