Come to think of it, this would work too:

document.forms[0][ 'the-Element' ].name


So, not that big a deal I guess.

From: [email protected]
To: [email protected]
Date: Wed, 1 Apr 2009 12:59:38 +0000
Subject: RE: [fw-general] Disable id attribute for form elements?








Matthew,

I wasn't aware of the setElementsBelongTo method. I will look into that. 

Are you sure that it will prefix elements with "<name>-" is stead of "<name>_" 
(dash instead of underscore?). If so, I believe this is not Javascript 
compliant (or at least not cross platform/browser). To my knowledge some (or 
maybe all?) Javascript engines have trouble with addressing elements with 
dashes in their id's, since a dash is simply a minus sign.

So I would not be able to do:
document.forms[0].hidden-elements-id.

I know this maybe a little oldskool, and it would be possible with DOM:
document.getElementById( 'hidden-elements-id' );

But I just thought I'ld bring it up anyway.

Cheers


> Date: Wed, 1 Apr 2009 07:11:22 -0400
> From: [email protected]
> To: [email protected]
> Subject: Re: [fw-general] Disable id attribute for form elements?
> 
> -- [email protected] <[email protected]> wrote
> (on Wednesday, 01 April 2009, 10:14 AM +0000):
> > Thanks for the response again. I just read in an issue that this is made
> > intentional behaviour:
> > http://framework.zend.com/issues/browse/ZF-277
> > 
> > But I strongly disagree with this. Therefor I created a new issue:
> > 
> > http://framework.zend.com/issues/browse/ZF-6174
> 
> I can't get to the issue tracker right now, but I can tell you now that
> I'm going to deny the request.
> 
> The reason is two-fold.
> 
> First, the design of the form view helpers since the very beginning has
> been to *always* create IDs. This is to make it trivial to get to the
> discrete elements using JavaScript, as well as to make testing easy
> (easier to select DOM elements by ID than other methods, though
> Zend_Dom_Query now makes it less of an issue).
> 
> Second, if you're having ID collisions, there is another mechanism you
> can use that's built into Zend_Form: array notation. Call the
> setElementsBelongTo() method of your form (or pass the
> 'elementsBelongTo' configuration key) and provide a unique namespace for
> your form. All elements within will then be prefixed by "<name>-".
> 
> Refactoring to allow *optional* display of IDs at this point only serves
> an edge case for something that can be easily avoided with proper
> configuration.
> 
> > PS.:
> > Vince, my apologies for sending the same message to you twice. I messed up
> > twice with replying to the list in stead of you.
> > 
> > 
> > ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
> > Date: Wed, 1 Apr 2009 11:43:59 +0300
> > Subject: Re: [fw-general] Disable id attribute for form elements?
> > From: [email protected]
> > To: [email protected]
> > CC: [email protected]
> > 
> > Hey,
> > 
> > Yes, sorry i meant you CAN set null and it should unset the property. I 
> > think
> > it's either a bug or something is wrong or is working not as the way it 
> > should.
> > 
> > Not sure but you could raise an issue.
> > 
> > Vince.
> > 
> > On Wed, Apr 1, 2009 at 11:36 AM, <[email protected]> wrote:
> > 
> >     Hi,
> > 
> >     Looking at it I can see I *can* set null as the value, as per:
> > 
> > 
> >             if (null === $value) {
> >                 unset($this->$name);
> > 
> > 
> >     But I presume some decorator or other render method replaces attribute 
> > "id"
> >     with the "name" attribute value if "id" equals null
> > 
> >     I haven't been able to figure out where this is though. I looked in:
> > 
> > 
> >     Zend_Form_Element
> >     Zend_Form_Element_Hidden (which I need it for)
> >     Zend_Form_Element_Xhtml
> >     Zend_Form_Decorator_Abstract
> >     Zend_Form_Decorator_FormElements
> >     Zend_Form_Decorator_HtmlTag
> > 
> >     ...all to no avail.  So any other pointers much appreciated.
> > 
> >     Cheers
> > 
> > 
> >     
> > ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
> >     Date: Wed, 1 Apr 2009 11:09:54 +0300
> >     Subject: Re: [fw-general] Disable id attribute for form elements?
> >     From: [email protected]
> >     To: [email protected]
> >     CC: [email protected]
> > 
> >     Hi,
> > 
> >     looking at Form/Element.php at the setAttrib function you can understand
> >     how the function works. you can tell that you can't just set null as the
> >     value.
> > 
> > 
> >         /**
> >          * Set element attribute
> >          *
> >          * @param  string $name
> >          * @param  mixed $value
> >          * @return Zend_Form_Element
> >          * @throws Zend_Form_Exception for invalid $name values
> >          */
> >         public function setAttrib($name, $value)
> >         {
> >             $name = (string) $name;
> >             if ('_' == $name[0]) {
> >                 require_once 'Zend/Form/Exception.php';
> >                 throw new Zend_Form_Exception(sprintf('Invalid attribute 
> > "%s";
> >     must not contain a leading underscore', $name));
> >             }
> > 
> >             if (null === $value) {
> >                 unset($this->$name);
> >             } else {
> >                 $this->$name = $value;
> >             }
> > 
> >             return $this;
> >         }
> > 
> >     Vince.
> > 
> >     On Wed, Apr 1, 2009 at 10:31 AM, <[email protected]> wrote:
> > 
> >         Hi all,
> > 
> >         Is there a way to disable the rendering of id attributes for form
> >         elements? I'm building a CMS which displays a tree of pages that 
> > can be
> >         edited. The tree consists of multiple forms for each page. I'ld 
> > rather
> >         not create unique for all of them.
> > 
> >         I tried:
> >         Zend_Form_Element::setAttrib( 'id', '' ); // results in invalid W3C
> >         code: id=""
> >         Zend_Form_Element::setAttrib( 'id', null ); // results in rendering 
> > id=
> >         "<name of the element>"
> > 
> >         I just simply want to disable the id attribute. Any possibilities?
> > 
> >         Cheers
> > 
> >         
> > ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
> >         Alle tips en trics. Ontdek nu de nieuwe Windows Live
> > 
> > 
> > 
> > 
> >     --
> >     Vincent Gabriel.
> >     Lead Developer, Senior Support.
> >     Zend Certified Engineer.
> > 
> >     
> > ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
> >     Haal meer uit je Hotmail met Internet Explorer 8. Download nu
> > 
> > 
> > 
> > 
> > --
> > Vincent Gabriel.
> > Lead Developer, Senior Support.
> > Zend Certified Engineer.
> > 
> > 
> > 
> > 
> > 
> > ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
> > Alle tips en trics. Ontdek nu de nieuwe Windows Live
> 
> -- 
> Matthew Weier O'Phinney
> Software Architect      | [email protected]
> Zend Framework          | http://framework.zend.com/

Heb jij de nieuwe Messenger nog niet?! Download 'm hier
_________________________________________________________________
Krijg updates van je vrienden en blijf op de hoogte
http://home.live.com

Reply via email to