Author: richter Date: Tue Nov 20 06:19:58 2012 New Revision: 1411558 URL: http://svn.apache.org/viewvc?rev=1411558&view=rev Log: Fix Form Validate for required with radio buttons & return names of failed controls
Modified: perl/embperl/trunk/Embperl/Form/Control.pm perl/embperl/trunk/Embperl/Form/ControlMultValue.pm perl/embperl/trunk/Embperl/Form/Validate.pm perl/embperl/trunk/Embperl/Form/Validate/Default.pm Modified: perl/embperl/trunk/Embperl/Form/Control.pm URL: http://svn.apache.org/viewvc/perl/embperl/trunk/Embperl/Form/Control.pm?rev=1411558&r1=1411557&r2=1411558&view=diff ============================================================================== --- perl/embperl/trunk/Embperl/Form/Control.pm (original) +++ perl/embperl/trunk/Embperl/Form/Control.pm Tue Nov 20 06:19:58 2012 @@ -87,7 +87,10 @@ sub is_disabled { my ($self, $req) = @_ ; - return $self -> {disable} || $req -> {form_options_masks}{$self->{name}}{disable} || $req -> {form_options_masks}{'*'}{disable} ; + my $disable = $self -> {disable} || $req -> {form_options_masks}{$self->{name}}{disable} || $req -> {form_options_masks}{'*'}{disable} ; + $disable = &{$disable}($self, $req) if (ref ($disable) eq 'CODE') ; + + return $disable ; } # --------------------------------------------------------------------------- @@ -100,7 +103,10 @@ sub is_readonly { my ($self, $req) = @_ ; - return $self -> {readonly} || $req -> {form_options_masks}{$self->{name}}{readonly} || $req -> {form_options_masks}{'*'}{readonly} ; + my $redaonly = $self -> {readonly} || $req -> {form_options_masks}{$self->{name}}{readonly} || $req -> {form_options_masks}{'*'}{readonly} ; + $redaonly = &{$redaonly}($req) if (ref ($redaonly) eq 'CODE') ; + + return $redaonly ; } # --------------------------------------------------------------------------- Modified: perl/embperl/trunk/Embperl/Form/ControlMultValue.pm URL: http://svn.apache.org/viewvc/perl/embperl/trunk/Embperl/Form/ControlMultValue.pm?rev=1411558&r1=1411557&r2=1411558&view=diff ============================================================================== --- perl/embperl/trunk/Embperl/Form/ControlMultValue.pm (original) +++ perl/embperl/trunk/Embperl/Form/ControlMultValue.pm Tue Nov 20 06:19:58 2012 @@ -103,7 +103,7 @@ sub get_all_values if ($addtop) { push @values, map { $_ -> [0] } @$addtop ; - push @options, map { $_ -> [0] } @$addtop ; + push @options, map { $_ -> [1] } @$addtop ; } if ($values) @@ -115,7 +115,7 @@ sub get_all_values if ($addbottom) { push @values, map { $_ -> [0] } @$addbottom ; - push @options, map { $_ -> [0] } @$addbottom ; + push @options, map { $_ -> [1] } @$addbottom ; } $req -> {$key} = [\@values, \@options] ; Modified: perl/embperl/trunk/Embperl/Form/Validate.pm URL: http://svn.apache.org/viewvc/perl/embperl/trunk/Embperl/Form/Validate.pm?rev=1411558&r1=1411557&r2=1411558&view=diff ============================================================================== --- perl/embperl/trunk/Embperl/Form/Validate.pm (original) +++ perl/embperl/trunk/Embperl/Form/Validate.pm Tue Nov 20 06:19:58 2012 @@ -692,11 +692,15 @@ function epform_validate_$fname(return_m var elems = document.$fname\[ids[key]\] ; if (elems) { - if (elems.constructor.name != 'NodeList') + if (!(elems instanceof NodeList)) elems = [elems] ; + if (elems[0] instanceof NodeList) + elems = elems[0] ; for (i = 0; i < elems.length ;i++) { var elem = elems[i] ; + if (elem.getAttribute('type') == 'radio') + elem = elem.parentElement ; var eclass = elem.getAttribute('class') ; elem.setAttribute ('class', eclass + ' ' + failed_class) ; elem.setAttribute ('title', msgs[key]) ; @@ -706,7 +710,10 @@ function epform_validate_$fname(return_m } if (return_msgs) - return msgs ; + { + var ret = [msgs, ids] ; + return ret ; + } if (i) alert (msgs.join('\\n')) ; Modified: perl/embperl/trunk/Embperl/Form/Validate/Default.pm URL: http://svn.apache.org/viewvc/perl/embperl/trunk/Embperl/Form/Validate/Default.pm?rev=1411558&r1=1411557&r2=1411558&view=diff ============================================================================== --- perl/embperl/trunk/Embperl/Form/Validate/Default.pm (original) +++ perl/embperl/trunk/Embperl/Form/Validate/Default.pm Tue Nov 20 06:19:58 2012 @@ -151,7 +151,7 @@ sub getscript_required { my ($self, $arg, $pref) = @_ ; - return ('obj.value', ['validate_required']) ; + return ('obj instanceof NodeList?obj[0].value:obj.value', ['validate_required']) ; } # -------------------------------------------------------------- --------------------------------------------------------------------- To unsubscribe, e-mail: embperl-cvs-unsubscr...@perl.apache.org For additional commands, e-mail: embperl-cvs-h...@perl.apache.org