【发布时间】:2017-01-22 18:58:16
【问题描述】:
我已经使用 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)
)
);
【问题讨论】:
-
您在这里有效地提出了多个问题。 “如何在 HTML 页面中放置日期时间选择器?”,“如何从 CGI.pm 生成标记?” (见之前的评论和“不要”)。 “如何使用 Perl 找到当前日期和时间?”。您应该专注于更窄的问题。
-
对于日期选择器,您需要 JavaScript。我用过jQuery UI's datepicker,但可能还有很多其他的。
-
@ThisSuitIsBlackNot 我喜欢你的建议,你会如何将你建议的日期选择器添加到面向对象的 CGI 页面,比如我的页面?
-
创建一个单独的 JavaScript 文件,并使用
<script>标签将其包含在您的 HTML 中,例如<script src="foo.js"></script>。正如 Quentin 所说,您不应该使用 CGI.pm 的 HTML 生成功能。对于一个简单的 HTML 表单,您甚至可能一开始就不需要生成 任何东西;只需使用静态 HTML 文件。如果你的 HTML 真的需要动态的,你应该使用像 Template Toolkit 这样的模板工具。