in reply to RFC: HTML::FormFill - but this one should prefill options in selects.

Is this of any interest? HTML::Menu::Select

Use the menu() subroutine if you want to have a template like this:

<form> <TMPL_VAR select_menu> <input type="submit"> </form>

Use the options() subroutine if you want to have a template like this:

<form> <select> <TMPL_VAR select_menu> </select> <input type="submit"> </form>

You could use it something like this:

use CGI 'header'; use HTML::Template; use HTML::Menu::Select 'menu'; my $tmpl = HTML::Template->new( ... ); my $select = menu( name => 'response', values => ['yes', 'no'], default => 'yes',] onChange => 'alert(this.value);', ); $tmpl->param( select_menu => $select ); print header(); print $tmpl->output;

See the docs for more info. The arguments are mostly compatable with CGI.pm's popup_menu routine (though I've just realised I haven't yet documented how they differ (todo!).

I've also upgraded HTML::Menu::DateTime to use this, so it can optionally generate the HTML rather than data structures.
Still on the to-do list though, is JS validation