65.9K
CodeProject 正在变化。 阅读更多。
Home

客户端链接动态日期框

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.20/5 (5投票s)

2002年3月11日

2分钟阅读

viewsIcon

64546

downloadIcon

848

一个脚本,提供一组链接的日期框,它将不允许选择无效的日期。

引言

作为一名经常处理后端事务的 Web 开发者,我深知处理日期是多么麻烦。SQL Server 安装为美国区域设置,而您的一些客户将其区域设置设置为英国或反之。如果您有服务器端验证,那么就没问题了,但如果您像我一样更喜欢在客户端进行表单验证,这需要大量的代码,使用拆分和数组来确定日期的格式,然后您必须将其重新组合以提交到服务器。此外,如果您像我一样通常在时间范围内进行编码,那么您似乎总是为每个项目编写一个定制版本。我对此感到厌倦,所以决定编写一个通用的脚本来处理日期框。我一直更喜欢使用下拉框来处理日期,仅仅是因为我认为它们比单个文本框或三个单独的框看起来更好。无论如何,废话不多说,让我们看看它是如何使用的。

编写此脚本的初衷是易用性,即如果我能够实现一组经过验证的日期框,或者在本脚本的情况下,不需要任何验证的日期框,那么我就能为更复杂的编码节省大量时间。那么如何使用它?很简单。

<P>
<FORM name=fDate action=dateBoxes.html method=post>
<TABLE>

<TR>
<TD>Date:</TD>
<TD>
<SELECT name=dDay></SELECT>
<SELECT name=dMonth></SELECT>
<SELECT name=dYear></SELECT>
</TD>
</TR>
<TR>
<TD 
colSpan=2>
<INPUT id=submit1 type=submit value=go name=submit1>
</TD>
</TR>
</TABLE>
</FORM> 
<SCRIPT src="cBoxes.js"></SCRIPT>
<SCRIPT>
var d1 = new dateObj(document.fDate.dDay, 
  document.fDate.dMonth, document.fDate.dYear);
initDates(1900, 2002, 1981, 4, 26, d1);
</SCRIPT>
</P>

正如您所看到的,实现的代码非常简洁。让我解释一下 initDates 函数。此函数的原型是:initDates(firstYear, lastYear, selectedYear, selectedMonth, selectedDay, dateObject)

  • firstYear 是将在年份框中出现的最早年份。
  • lastYear 是将在年份框中出现的最新年份。
  • selectedYear (顾名思义)是当前选择的年份。
  • selectedMonth 是当前选择的月份。
  • selectedDay 是当前选择的日期。
  • dateObject 是代表日期框的自定义对象。

就是这样。我不会详细介绍脚本的工作原理,因为源代码非常清晰易懂。欢迎提出所有建议和建设性的批评。祝您使用愉快!

请注意,此脚本当前仅适用于 IE,尽管 Netscape 6.2 可能也可以工作。如果有人将此脚本转换为适用于 Netscape,请告诉我。

© . All rights reserved.