struts-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Musachy Barroso (JIRA)" <j...@apache.org>
Subject [jira] Resolved: (WW-2393) s:submit doesn't work in IE7 when submitting a s:form that contains a textfield named "id"
Date Wed, 15 Apr 2009 20:02:07 GMT

     [ https://issues.apache.org/struts/browse/WW-2393?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Musachy Barroso resolved WW-2393.
---------------------------------

    Resolution: Won't Fix

Closing dojo related tickets as "Won't fix". if you have a patch for this issue, feel free
to attach it and re-open.

> s:submit doesn't work in IE7 when submitting a s:form that contains a textfield named
"id"
> ------------------------------------------------------------------------------------------
>
>                 Key: WW-2393
>                 URL: https://issues.apache.org/struts/browse/WW-2393
>             Project: Struts 2
>          Issue Type: Bug
>          Components: Plugin - Dojo Tags
>            Reporter: Volceri D Avila
>             Fix For: Future
>
>
> Using the s:submit tag in order to post data from a s:form that contanis a textfield
named "id" doesn't in IE7. 
> After doing some debug I found a problem in the javascript generated by dojo plugin (dojo.js),
specifically in the dojo.byId function. There, it looks for a form with the given id. At first
it works well, but then it checks if the id of the found element is the same of the given
id. If the form contains a textfield with the name "id", the function returns wrond value.
> Here's the dojo source with some comments...
> dojo.byId=function(id,doc){
>   
>   if((id)&&((typeof id=="string")||(id instanceof String))){
>     if(!doc){
> 	  doc=dj_currentDocument;
> 	}
> 	var ele=doc.getElementById(id);
> 	
>        //*************
>        // If you have a for with a textfield with the name "id" the
>        // test (ele.id!=id) always returns false....
>         //*************
> 	if(ele&&(ele.id!=id)&&doc.all){ 
> 	  ele=null;
> 	  eles=doc.all[id];
> 		
> 	  if(eles){
> 		//****************************
> 		// Here's the problem ... "eles.length" is
> 		// not the number of forms with the same id, but rather,
> 		// the number of the inner elements of the form...
> 		// textfields, for example
> 		//****************************
> 		if(eles.length){
> 		  for(var i=0;i<eles.length;i++){
> 			if(eles[i].id==id){
> 		      ele=eles[i];
> 			  break;
> 			}
> 		   }
> 			
> 		}else{
> 			ele=eles;
> 		} 
> 		} } 
> return ele;	}
> return id; };
> Some pieces of the source I coded:
> <s:form  id="formId" theme="ajax" namespace="/ajax" method="post" ...>	
> 	<s:textfield label="Id"	name="id" cssClass="textfield"/>	 
> </s:form>
> the submit button (outer):
> <s:submit formId="formId" targets="list" theme="ajax" .../>
> the s:div
> <s:div id="list" ...></s:div>

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


Mime
View raw message