DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://nagoya.apache.org/bugzilla/show_bug.cgi?id=15194>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=15194

Bug for focus attribute on FormTag when the control to give the focus is hidden

           Summary: Bug for focus attribute on FormTag when the control to
                    give the focus is hidden
           Product: Struts
           Version: Nightly Build
          Platform: PC
        OS/Version: Windows XP
            Status: NEW
          Severity: Normal
          Priority: Other
         Component: Custom Tags
        AssignedTo: [EMAIL PROTECTED]
        ReportedBy: [EMAIL PROTECTED]


I'm trying to use the focus attribute of the FormTag but i have found a bug 
when the control is of type hidden (my form has this control enabled only with 
some condition).
The generated code cause a Javascript client error when the control is hidden, 
because it use a not inizialized variable (focusControl[0]) to determine the 
focusControl end then call on it focus() method.
The actually generated code is this (notice also incorrect indentation for 
first if statement):
<script type="text/javascript" language="JavaScript">
  <!--
  if (document.forms["corsoModifyDynaForm"].elements["titCorso"].type !
= "hidden") 
     var focusControl = document.forms["corsoModifyDynaForm"].elements
["titCorso"];
     if (focusControl.name == null) {
         focusControl = focusControl[0];
     }
     focusControl.focus();
  // -->
</script>

I suggest that the correct code to be generated may be this, that try to assign 
the focus to the control suggested and if it is hidden, assign the focus 
to the first visible control (that is not a button) of the form. 

<!--
var focusControl = null;
if (document.forms["corsoModifyDynaForm"].elements["titCorso"].type !
= "hidden") {
        focusControl = document.forms["corsoModifyDynaForm"].elements
["titCorso"];
} else {
        var size =  document.forms["corsoModifyDynaForm"].length;
        for ( var i = 0; i< size; i++) {
                focusControl = document.forms["corsoModifyDynaForm"].elements
[i];
                if (focusControl.type != 'hidden' &&
                    focusControl.type != 'submit' &&
                    focusControl.type != 'button' ) {
                        break;
                }
        }
}
focusControl.focus();
// -->

TIA

--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to