[ https://issues.apache.org/jira/browse/MYFACES-2256?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Lutz Ulruch updated MYFACES-2256: --------------------------------- Status: Open (was: Patch Available) > oamSetHiddenInput should not ignore nodeName=='input' (lower case characters) > ----------------------------------------------------------------------------- > > Key: MYFACES-2256 > URL: https://issues.apache.org/jira/browse/MYFACES-2256 > Project: MyFaces Core > Issue Type: Bug > Affects Versions: 1.2.6 > Environment: Windows XP Professional, Firefox 3.0.11, MyFaces 1.2.6 > Tomahawk-12 1.1.8 (and RichFaces 3.3.1 GA), Tomcat 6. > Reporter: Lutz Ulruch > > In > function oamSetHiddenInput(formname, name, value) > the test > if(typeof form.elements[name]!='undefined' && > form.elements[name].nodeName=='INPUT') > does not cover <input> elements where nodeName is 'input' (that is: lower > case characters instead of upper case 'INPUT'). > This results in the following error: > If the form already contains an input element with the specified name, but > nodeName=='input', the test fails and a new input element with the same name > is added to the form. > If the form is submitted, the HTTP request will contain 2 values for the > parameter referenced by 'name': > one is the value of the unchanged <INPUT> field, the other is the value of > the newly created <input> field. > Most UIComponents do not check if there is more than one value for a > parameter. > Probably they will just interpret the first value - which might be the > 'wrong' value of the <INPUT> field instead of the 'valid' value of the > <input> field. > How I achieved this situation: > Even though MyFaces typically renders input fields with lower case characters > (XHTML), when a page is rendered by Firefox, the nodeName of input elements > seems to be the upper case variant. I wonder why. > Now, we use RichFaces' a4j:poll in order to perform periodical partial page > updates. > The updated part of the page may contain locically equivalent input fields, > but in lower case. > The JavaScript behind a4j:poll uses the W3C DOM method replaceChild() in > order to update page fragments. > This method replaces the original <INPUT> fields by <input> fields. > Of course, it doesn't matter how <input> elements become part of a page. > In oamSetHiddenInput() <input> should be treated like <INPUT>. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.