Re: Enumerating input fields

anthyon
Fri, 23 May 2008 07:46:55 -0000

well i tried this out, and all it proved is that getElement returns a
random ordered list. :(

i wanted to do this feature independent of the form itself, but as
most of my forms are generated dynamically, i will simply generate a
tabIndex attribute on each element. In the future i would like to
implement an "xforms repeat"-like functionality, and then i will have
to be aware of the maxcount of each repeat but that''s not so hard i
think.

so thanks for all the replies. :)

Anthyon

Gareth Evans írta:
> Add X where X is a arbitary value greater than or equal to the number of
> elements that are in your form that don''t have tabindexes to the
tabindex
> value in the read attribute call.
> Then, keep a variable, initialized to 0 before the call, that is going to
be
> the ''fake'' tabindex for the elements that don''t
have one.
> This will ensure the elements are sorted by the order they''re
returned by
> the getElement call when they don''t have a tab index.
> I can''t guaruntee this will be document order though.
> Code sample below.
> var fakeTabIndex = 0;
> var tabIndexOffset = 100;
> $(''my_form'').getElements().sortBy(function(element) {
>  return
parseInt(element.readAttribute(''tabindex'')+tabIndexOffset  ||
> (fakeTabIndex++));
> }).each(function(element) {
>  // do something
> });