Please note the "wrap" attribute on <textarea> is new to (X)HTML5. So it definitely won't validate version <= 4. Chris is right, you should remove it unless you want to validate at a higher HTML version.
On Thu, Mar 6, 2014 at 10:48 AM, Chris Pratt <thechrispr...@gmail.com>wrote: > Did you try moving the <s:hidden> elements to the top of the form, or > removing the wrap="hard" from your <s:textarea>? > (*Chris*) > > > On Thu, Mar 6, 2014 at 5:13 AM, Fredrik Andersson <fredan...@hotmail.com > >wrote: > > > Hello guys! > > > > I trying to produce a app that renders in XHTML. > > <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " > > http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> > > <html xmlns="http://www.w3.org/1999/xhtml"> > > > > How ever I got a form looking like this: > > > > <s:form action="productcommentssave"> > > <s:textfield name="productComment.emailAddress" label="Email address" > > labelposition="top" maxlength="128" size="40" /> > > <s:textfield name="productComment.subject" label="Subject" > > labelposition="top" maxlength="128" size="40" /> > > <s:textarea name="productComment.text" label="Message (max 1024 chars)" > > cols="52" rows="5" labelposition="top" wrap="hard"/> > > <s:submit /> > > <s:hidden name="PRODUCTCOMMENTSACTION_FORM_TOKEN_NAME" > > value="%{formToken}" /> > > <s:hidden name="productid" value="%{product.id}" /> > > </s:form> > > > > This gets rendered like: > > 25 <form id="productcommentssave" name="productcommentssave" > > action="/productcommentssave.action" method="post"> > > 26 <table class="wwFormTable"> > > 27 <tr> > > 28 <td align="left" valign="top" colspan="2"><label > > for="productcommentssave_productComment_emailAddress" class="label">Email > > address:</label></td> > > 29 </tr> > > 30 <tr> > > 31 <td > > 32><input type="text" name="productComment.emailAddress" size="40" > > maxlength="128" value="" > > id="productcommentssave_productComment_emailAddress"/></td> > > 33 </tr> > > 34 > > 35 > > 36 <tr> > > 37 <td align="left" valign="top" colspan="2"><label > > for="productcommentssave_productComment_subject" > > class="label">Subject:</label></td> > > 38 </tr> > > 39 <tr> > > 40 <td > > 41><input type="text" name="productComment.subject" size="40" > > maxlength="128" value="" > > id="productcommentssave_productComment_subject"/></td> > > 42 </tr> > > 43 > > 44 > > 45 <tr> > > 46 <td align="left" valign="top" colspan="2"><label > > for="productcommentssave_productComment_text" class="label">Message (max > > 1024 chars):</label></td> > > 47 </tr> > > 48 <tr> > > 49 <td > > 50><textarea name="productComment.text" cols="52" rows="5" wrap="hard" > > id="productcommentssave_productComment_text"></textarea></td> > > 51 </tr> > > 52 > > 53 > > 54 <tr> > > 55 <td colspan="2"><div align="right"><input type="submit" > > id="productcommentssave_0" value="Submit"/> > > 56 </div></td> > > 57</tr> > > 58 > > 59 > > 60 <input type="hidden" name="PRODUCTCOMMENTSACTION_FORM_TOKEN_NAME" > > value="1394108222515" > > id="productcommentssave_PRODUCTCOMMENTSACTION_FORM_TOKEN_NAME"/> > > 61 <input type="hidden" name="productid" value="3" > > id="productcommentssave_productid"/> > > 62 </table></form> > > > > From http://validator.w3.org/#validate_by_input+with_options I validate > > it and get these 3 anoying errors: > > > > Error Line 50, Column 63: there is no attribute "wrap" > > ...Comment.text" cols="52" rows="5" wrap="hard" > > id="productcommentssave_productCo... > > You have used the attribute named above in your document, but the > document > > type you are using does not support that attribute for this element. This > > error is often caused by incorrect use of the "Strict" document type > with a > > document that uses frames (e.g. you must use the "Transitional" document > > type to get the "target" attribute), or by using vendor proprietary > > extensions such as "marginheight" (this is usually fixed by using CSS to > > achieve the desired effect instead). > > This error may also result if the element itself is not supported in the > > document type you are using, as an undefined element will have no > supported > > attributes; in this case, see the element-undefined error message for > > further information. > > How to fix: check the spelling and case of the element and attribute, > > (Remember XHTML is all lower-case) and/or check that they are both > allowed > > in the chosen document type, and/or use CSS instead of this attribute. If > > you received this error when using the <embed> element to incorporate > flash > > media in a Web page, see the FAQ item on valid flash. > > > > Error Line 60, Column 161: document type does not allow element "input" > > here > > ...1394108222515" > > id="productcommentssave_PRODUCTCOMMENTSACTION_FORM_TOKEN_NAME"/> > > The element named above was found in a context where it is not allowed. > > This could mean that you have incorrectly nested elements -- such as a > > "style" element in the "body" section instead of inside "head" -- or two > > elements that overlap (which is not allowed). > > One common cause for this error is the use of XHTML syntax in HTML > > documents. Due to HTML's rules of implicitly closed elements, this error > > can create cascading effects. For instance, using XHTML's "self-closing" > > tags for "meta" and "link" in the "head" section of a HTML document may > > cause the parser to infer the end of the "head" section and the beginning > > of the "body" section (where "link" and "meta" are not allowed; hence the > > reported error). > > > > Error Line 61, Column 93: document type does not allow element "input" > here > > ...t type="hidden" name="productid" value="3" > > id="productcommentssave_productid"/> > > (same as at line 60) > > > > Do you guys see anything that I could do to correct this? I would love to > > have a app with correct xhtml. > > > > Best regards > > Fredrik > -- Cheers, Paul