cocoon-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Johnson" <john...@soho.club.tw>
Subject a method for controling focus in cform when on-value-changed
Date Sun, 07 Nov 2004 15:00:53 GMT
Hi!

I think it's a big problem for controling focus in cform,because when on-value-changed submit,the
focus loss,this will cause unconvient to user.
so I try several method.
1. handle the xsl in on-value-changed,but the new page will became default value of the xsl
file was.
2. use xsl:param,it works one time,the second time the value of xsl:param became a fixed value,because
in on-value-changed,the sitemap not performed.
3. use session context , the same to xsl:param
4. try to judge the name of forms_submit_id , the first page sended, but I can't find it in
second page, maybe there're a method to pass it from server to cliend.
5. add a hidden widget,it works.
A. in form definition file, add a field,put to the first column for the form.
B. in flowscript, set the init value for the widget to 2 for init display.
C. in template,assign the widget type to hidden.
D. add the following code in template or xsl

      <script type="text/javascript">
         var focusHandler = new Object();
         focusHandler.forms_onload = function() {
              var idx = document.forms['aaaaa'].elements[1].value;
              document.forms['aaaaa'].elements[idx].focus();
             }
        forms_onloadHandlers.push(focusHandler);
    </script>

E. in on-value-change change the widget's value to a proper one.

It seemed too complex,I prefer the method 4, but  I don't know how to get the forms_submit_id
in the second page cliend side xsl, maybe others can teach me.

Best Regards

johnson
Mime
View raw message