我使用perl创建了一个CGI表单,一切都工作得很好,除了我很难找到一个解决方案,我如何才能得到当前的时间和日期填写在表单中,同时给用户的选项,以改变输入的日期和时间选择器。下面是我写的代码:
sub output_form {
my ($q) = @_;
print $q->start_form(
-name => 'main',
-method => 'POST',
);
print $q->start_table;
print $q->Tr(
$q->td('Update#:'),
$q->td(
$q->textfield(-name => "update_num", -size => 02)
)
);
print $q->Tr(
$q->td('Date:'),
$q->td(
$q->textfield(-name => "date", -size => 50)
)
);
print $q->Tr(
$q->td('Time:'),
$q->td(
$q->textfield(-name => "time", -size => 50)
)
);
添加http://jqueryui.com/datepicker/到你的html页面
print "<link rel='stylesheet' href='//code.jquery.com/ui/1.12.0/themes/base/jquery-ui.css'>";
print "<script src='//code.jquery.com/jquery-1.12.4.js'></script>";
print "<script src='//code.jquery.com/ui/1.12.0/jquery-ui.js'></script>";
…
然后将ID标签添加到您的文本字段。
print $q->Tr(
$q->td('Date:'),
$q->td(
$q->textfield(-name => "date", -size => 50, -id => "datepicker")
)
);
您可能还会发现perlmonks提供的关于使用javascript的参考:http://www.perlmonks.org/?node_id=1050387
这里是另一个关于数据选择器的话题。jQuery日期/时间选择器
如果你知道你的用户将使用Edge或Chrome等现代浏览器,那么你可以使用HTML5 date
输入。
<input type="date" value="2016-09-15">
这在支持的浏览器上提供了一个很好的日期选择器,并降级为不支持的简单文本输入。
你可以用CGI的HTML创建函数来创建它。
$q->input({type => 'date', value => '2016-09-15'});
但是正如其他人指出的那样,我们知道HTML创建函数是一个愚蠢的想法至少有15年了。现在没人应该用它们了。请使用模板引擎。
至于得到日期。最简单的选择可能是使用Time::Piece。
use Time::Piece;
my $date = localtime;
say $q->input({type => 'date', value => $date->strftime('%Y-%m-%d')});