Great, Eugene, thanks a lot! That's how I did it:
$city->removeDecorator('Label'); (there is no DtDdWrapper on a standard Zend_Form_Element_Text, so I just removed the "Label" (dt) decorator, the dd tag comes from the "HtmlTag" decorator) Form element output: <dt id="zipcode-label"><label for="zipcode" class="required">Zipcode / City</label></dt> <dd id="zipcode-element"> <input type="text" name="zipcode" id="zipcode" value="" size="10" /> </dd> <dd id="city-element"> <input type="text" name="city" id="city" value="" /> </dd> My CSS looks like this: ------------------ fieldset dt { width: 210px; float: left; } fieldset dd { float: left; } fieldset dd#zipcode-element { width: 110px; } fieldset dd#city-element { width: 330px; } fieldset input#zipcode { width: 100px; } fieldset input#city { width: 325px; } fieldset dd#city-element ul.errors { margin-left: -115px; } ------------------ It's kind of an ugly hack, especially the positioning of ul.errors - errors of both input fields override each other. But as Zend_Validate_NotEmpty::IS_EMPTY is the only possible error message in this case, this doesn't matter and looks even better than two identical errors. take care Philip Am 14.05.2010 um 16:03 schrieb Eugene Morgan: > This is one way to do it: > > $city->removeDecorator('DtDdWrapper') > ->addDecorator('HtmlTag', array( > 'tag' => 'dd' > )); > > You'll get markup like this: > <dt id="zipcode-label"><label for="zipcode" class="required">Zipcode / > City</label></dt> > <dd id="zipcode-element"> > <input type="text" name="zipcode" id="zipcode" value="" /> > </dd> > <dd> > <input type="text" name="city" id="city" value="" /> > </dd> > > Then you can use CSS to make that second <dd> display inline. > > > On Thu, May 13, 2010 at 4:50 PM, Philip Iezzi <li...@iezzi.ch> wrote: >> Hi, >> >> What I'm trying to accomplish is to group two Zend_Form_Element_Text >> elements that they show up on the same line. >> I'm styling my standard Zend_Form output (standard decorators) by CSS to >> bring the form element's label to the left side of the input field. >> >> $zipcode = new Zend_Form_Element_Text('zipcode', array('size' => 10)); >> $zipcode->setLabel('City') >> ->setRequired(true); >> >> $city = new Zend_Form_Element_Text('city'); >> $city->setLabel('Ort') >> ->setRequired(true); >> >> The rendered form produces the following: >> >> <dt id="zipcode-label"><label for="zipcode" >> class="required">Zipcode</label></dt> >> <dd id="zipcode-element"> >> <input type="text" name="zipcode" id="zipcode" value="" /> >> </dd> >> <dt id="city-label"><label for="city" class="required">City</label></dt> >> <dd id="city-element"> >> <input type="text" name="city" id="city" value="" /> >> </dd> >> >> Now I would like to group those two input fields together that they show up >> on the same line, say: >> >> <dt id="zipcode-label"><label for="zipcode" class="required">Zipcode / >> City</label></dt> >> <dd id="zipcode-element"> >> <input type="text" name="zipcode" id="zipcode" value="" /> >> <input type="text" name="city" id="city" value="" /> >> </dd> >> >> Removing the HtmlTag & Label decorators of $city doesn't do the trick... >> >> $city->removeDecorator('HtmlTag') >> ->removeDecorator('Label'); >> >> How can I attach the $city element into the HtmlTag decorator (dd-Tag) of >> the previous element? If possible, without building the whole form from >> scratch with a ViewScript decorator. >> >> Thanks a lot >> Philip >