You are viewing a plain text version of this content. The canonical link for it is here.
Posted to adffaces-issues@incubator.apache.org by "Peter Büttner (JIRA)" <ad...@incubator.apache.org> on 2007/04/18 05:53:15 UTC

[jira] Created: (ADFFACES-456) javasript in Core.js is broken, app stops working if components have special names

javasript in Core.js is broken, app stops working if components have special names
----------------------------------------------------------------------------------

                 Key: ADFFACES-456
                 URL: https://issues.apache.org/jira/browse/ADFFACES-456
             Project: MyFaces ADF-Faces
          Issue Type: Bug
         Environment: adf
            Reporter: Peter Büttner


I found a strange bug in our application:

In some 'very' special cases the app doesn't accepts any user interaction.
The browser (IE6, Mozilla 1.7.x) reports javascript errors. 
e.g. in formSubmit, still found in the (newest?) version:

   <http://svn.apache.org/viewvc/incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/javascript/META-INF/adf/jsLibs/Core.js?view=log>

Reason is something like
  callAFunction(form.name)
where form is the real and correct html-form element.

But: if one has a component with e.g. <input id='name' name='name' ...> those 
browsers doesn't calculate "form.name" to the form-nodes attribute 'name', 
but to the (html) input  element!

This also occures on components with id='target'  in another core function.

Other attributes of a <form> maybe (from selfhtml.org)
   action,accept,accept-charset,enctype,method,name,onreset,onsubmit,target,class,id,style,title

I think it is not a good solution to let programmers avoid component id's 
like 'name, target, action, title, method' since that are common names
of input data components. The attributes doesn't make problems if the javascript 
code don't use those names like 'form.attribute' (form.name and form.target are 
used, but i haven't searched for the others)

a solution maybe to use the dom functions and wrap them for easy usage:
   function getFormName(form){return form.getAttribute('name');}
   function getFormTarget(form){return form.getAttribute('target');}

And probably tell other js developers about this pitfall.


As a quick solution for our application i renamed those components.


Well, i really wondered how such a bug lives for years:-) But that seems to happen.


Greetings
Peter Büttner

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.