If you look at the source code of CGI, you can discover the code inside end_form that is adding all the extra hidden variables.
sub end_form { my($self,@p) = self_or_default(@_); if ( $NOSTICKY ) { return wantarray ? ("</form>") : "\n</form>"; } else { if (my @fields = $self->get_fields) { return wantarray ? ("<div>",@fields,"</div>","</form>") : "<div>".(join '',@fields)."</div>\n</fo +rm>"; } else { return "</form>"; } } }
As you can see above, the $NOSTICKY global will prevent the extra hidden fields that lead to the undesired default values. After reading the documentation of $NOSTICKY, you can set this in two different ways. One of them is more global:
use CGI qw(-nosticky);
Or you can is isolate the change to just the end_form function by doing the following:
print do {local $CGI::NOSTICKY = 1; $q->end_form()} . "\n";
Or you can just simplify the whole process for yourself by writing a simple </form> tag. Really don't know why someone wouldn't just do that anyway as the CGI module really does try to do too much in my opinion.
- MillerIn reply to Re^3: How to get unselected radio_group() items after submitting form
by wind
in thread How to get unselected radio_group() items after submitting form
by slugger415
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |