Date: Sunday August 10, 2003 @ 17:43 Author: matt Update of /home/cvs/AxKit-XSP-PerForm In directory ted.sergeant.org:/home/matt/Perl/AxKit-XSP-PerForm
Modified Files: Changes PerForm.pm Log Message: Fix issue with no button being pressed. Log: PR: Index: Changes =================================================================== RCS file: /home/cvs/AxKit-XSP-PerForm/Changes,v retrieving revision 1.10 retrieving revision 1.11 diff -b -u -r1.10 -r1.11 --- Changes 2003/06/24 10:17:29 1.10 +++ Changes 2003/08/10 16:43:56 1.11 @@ -1,5 +1,9 @@ Revision history for Perl extension AxKit::XSP::PerForm. +1.8.3 + - Added support for a default form submit routine, in case the + form was submitted without clicking a button. + 1.8.2 - Add disabled, onclick and onchange attributes to each element Index: PerForm.pm =================================================================== RCS file: /home/cvs/AxKit-XSP-PerForm/PerForm.pm,v retrieving revision 1.23 retrieving revision 1.24 diff -b -u -r1.23 -r1.24 --- PerForm.pm 2003/06/24 10:17:29 1.23 +++ PerForm.pm 2003/08/10 16:43:56 1.24 @@ -1,8 +1,8 @@ -# $Id: PerForm.pm,v 1.23 2003/06/24 10:17:29 matt Exp $ +# $Id: PerForm.pm,v 1.24 2003/08/10 16:43:56 matt Exp $ package AxKit::XSP::PerForm; -$VERSION = "1.82"; +$VERSION = "1.83"; use AxKit 1.4; use Apache; @@ -134,7 +134,7 @@ \$redirect = \$sub->(\$_form_ctxt, \$_cancel_index{\$cancel}{'index'}); } if (\$redirect) { - AxKit::XSP::WebUtils::redirect(\$redirect,undef,undef,1); + return AxKit::XSP::WebUtils::redirect(\$redirect,undef,undef,1); } } } @@ -150,12 +150,23 @@ \$redirect = \$sub->(\$_form_ctxt, \$_submit_index{\$submit}{'index'}); } if (\$redirect) { - AxKit::XSP::WebUtils::redirect(\$redirect,undef,undef,1); + return AxKit::XSP::WebUtils::redirect(\$redirect,undef,undef,1); } } } } +# catch the case where IE submitted the form without any buttons used +if (\$cgi->param('__submitting_$name') && !\$_form_ctxt->{_Failed}) { + no strict 'refs'; + my \$redirect; + if (my \$sub = \$package->can('$onsubmit')) { + \$redirect = \$sub->(\$_form_ctxt); + } + if (\$redirect) { + return AxKit::XSP::WebUtils::redirect(\$redirect, undef, undef, 1); + } +} } EOT @@ -910,6 +921,11 @@ buttons support C<onsubmit> attributes. Cancel buttons support C<oncancel> attributes. Forms themselves support both C<oncancel> and C<onsubmit> attributes. + +If a form is submitted without pressing a button (such as via JavaScript, +or by hitting <Enter>, then the form tag's C<onsubmit> callback will be +used. It is always sensible to define this to be one of your button's +submit callbacks. All tags allow a C<disabled> attribute. Set this to a true value (i.e. C<disabled="1">) to set the control to disabled. This will be interpreted