根据月份显示表单字段中的天数

时间:2011-02-10 22:32:52

标签: javascript jquery

我想验证表单中的基本日期格式。日期有三个字段,分别为月,日和年。我想这样做,如果选择1月,3月,5月,7月,8月,10月或12月,那么它应该在当天显示31天。如果选择了二月,则应显示28天,否则显示30天。 此外,如果有人在月份前一天选择然后选择月份,则应将所选日期重置为1。 这是我的表单代码。我将非常感谢任何帮助。

<?php
$monthOptions = '';
$dayOptions = '';
$yearOptions = '';

for($month=1; $month<=12; $month++){
    $monthName = date("M", mktime(0, 0, 0, $month));
    $monthOptions .= "<option value=\"$month\">$monthName</option>\n";
}
for($day=1; $day<=31; $day++){
    $dayOptions .= "<option value=\"$day\">$day</option>\n";
}
for($year=1900; $year<=2010; $year++){
    $yearOptions .= "<option value=\"$year\">$year</option>\n";
}
?>
<html>

<body>
Select date:<br />
<select name="month" id="month" >
<?php echo $monthOptions; ?>
</select>

<select name="day" id="day">
<?php echo $dayOptions; ?>
</select>

<select name="year" id="year" >
<?php echo $yearOptions; ?>
</select>

</body>
</html>

1 个答案:

答案 0 :(得分:0)

我讨厌建议在你的项目中添加另一个JS库,但由于你已经在使用jQuery,我将指向jQuery UI - 尤其是jQuery UI Datepicker。它将为你处理所有那些挑剔的约会问题(我讨厌使用日期和时间 - 有很多陷阱)。用户将单击输入(或日期选择按钮),他们将通过在日历上单击它来选择日期(或者他们可以直接在输入中键入日期)。您将在一个输入而不是三个输入中获取日期,但如果您需要更细粒度的任何内容,它可以通过Date.parse(或等效的PHP)轻松解析。

免责声明:如果日期可能超过数年,使用会有点烦人。有一些箭头可以更改日历小部件上的月份,但今年没有。 键盘快捷键(Ctrl + PgUp / PgDown),但是如果不阅读文档就无法知道,所以如果你这样做,你可能想要通过输入做一个注释。可能还有一种方法可以添加年份按钮,但我确实没有找到它......

希望这有帮助!