You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@struts.apache.org by cr...@apache.org on 2001/05/05 00:21:13 UTC

cvs commit: jakarta-struts/src/share/org/apache/struts/taglib/html FormTag.java

craigmcc    01/05/04 15:21:12

  Modified:    src/share/org/apache/struts/taglib/html FormTag.java
  Log:
  Make it possible to use <html:form ... focus="xxx" .../> on an input field
  that is a series of radio buttons, or otherwise is indexed.
  
  Thanks for the patch!
  
  PR: Bugzilla #1586
  Submitted by:	Wayne Young <wy...@metasolv.com>
  
  Revision  Changes    Path
  1.13      +20 -5     jakarta-struts/src/share/org/apache/struts/taglib/html/FormTag.java
  
  Index: FormTag.java
  ===================================================================
  RCS file: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/html/FormTag.java,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- FormTag.java	2001/05/04 19:25:17	1.12
  +++ FormTag.java	2001/05/04 22:21:05	1.13
  @@ -1,7 +1,7 @@
   /*
  - * $Header: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/html/FormTag.java,v 1.12 2001/05/04 19:25:17 craigmcc Exp $
  - * $Revision: 1.12 $
  - * $Date: 2001/05/04 19:25:17 $
  + * $Header: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/html/FormTag.java,v 1.13 2001/05/04 22:21:05 craigmcc Exp $
  + * $Revision: 1.13 $
  + * $Date: 2001/05/04 22:21:05 $
    *
    * ====================================================================
    *
  @@ -64,6 +64,7 @@
   
   
   import java.io.IOException;
  +import java.util.StringTokenizer;
   import javax.servlet.http.HttpServletRequest;
   import javax.servlet.http.HttpServletResponse;
   import javax.servlet.http.HttpSession;
  @@ -87,7 +88,7 @@
    * properties correspond to the various fields of the form.
    *
    * @author Craig R. McClanahan
  - * @version $Revision: 1.12 $ $Date: 2001/05/04 19:25:17 $
  + * @version $Revision: 1.13 $ $Date: 2001/05/04 22:21:05 $
    */
   
   public class FormTag extends TagSupport {
  @@ -594,7 +595,18 @@
   
   	// Render a tag representing the end of our current form
   	StringBuffer results = new StringBuffer("</form>");
  +
  +        // Render JavaScript to set the input focus if required
   	if (focus != null) {
  +            String tempFocus = focus;
  +            StringBuffer refocus = new StringBuffer("[");
  +            if (tempFocus.indexOf("[") > 0) {
  +                StringTokenizer st = new StringTokenizer(tempFocus, "[");
  +                if (st.countTokens() == 2) {
  +                    tempFocus = st.nextToken();
  +                    refocus.append(st.nextToken());
  +                }
  +            }
   	    results.append("\r\n");
   	    results.append("<script language=\"JavaScript\"");
               results.append(" type=\"text/javascript\">\r\n");
  @@ -602,8 +614,11 @@
   	    results.append("    document.forms[\"");
   	    results.append(name);
   	    results.append("\"].elements[\"");
  -            results.append(focus);
  +            results.append(tempFocus);
               results.append("\"]");
  +            if (refocus.length() > 1) {
  +                results.append(refocus.toString());
  +            }
   	    results.append(".focus()\r\n");
   	    results.append("  // -->\r\n");
   	    results.append("</script>\r\n");