欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

用ASP开发WEB日期选择器

程序员文章站 2022-04-19 10:27:50
在web结构中,日期数据在表单中输入可以采用很多种方法,常见的有:  1、在文本框中让用户按规定好的日期格式直接输入。这种方法最简单,可是用户使用起来很麻烦,而且程序员还要在后台对输入的日期进行数据...
在web结构中,日期数据在表单中输入可以采用很多种方法,常见的有:
  1、在文本框中让用户按规定好的日期格式直接输入。这种方法最简单,可是用户使用起来很麻烦,而且程序员还要在后台对输入的日期进行数据验证,所以显得很笨拙;
  2、用下拉列表列出年份、月份、天数由用户选择输入。这种方法更麻烦,用户操作看似比上一种方便了,可是每一个日期输入都需要程序员在后台对年份、月份、天数一一循环列出,而且在列出前或用户输入后还是要对日期信息进行验证,所以这种方法也不可取;
  3、用activex日历控件,在前台输入。这种方法很方便,可是唯一缺点也是最致命的一个弱点:需要每个客户端都要装有activex控件。

  最近,笔者用asp结合javascript,开发了这样一个模仿控件式的日期选择器。用户操作更直观、更方便;程序后台实现时可以在每次需要时很方便的调用,而不需要客户端安装任何程序。

  在此,将源代码贡献出来与大家一起分享。

[原理]

  使用页面通过打开定制窗口调用日期选择程序,并将使用页面内的formname,filedname元素属性传给日期选择程序。在日期选择程序中,用asp在后台计算并显示出日历,用户选择后,将日期值再传回使用页面的filed.value,最后自动关闭弹出窗口完成选择。

[源程序]

 1、sample.htm   (使用页面)
  2、calendar. (日期选择器程序)

1、sample.htm
========================================================
<html>
<head>
<title>calendar sample</title>
</head>
<body>
<form method="post" action="sample.htm" name="sample">
  <b><font face="arial">sample</font></b><p>
  <font face="arial"><span style="font-size: 9pt; font-weight:

700">date: </span>
  </font><input type="text" name="date" size="10" readonly>
  <a href="#selectdate"

onclick="javascript:window.open(calendar.asp?form=sample&field=date

,,directorys=no,toolbar=no,status=no,menubar=no,scrollbars=no,resi

zable=no,width=190,height=140);">
  <img border="0" src="/edu/uploadpic/2007-12/2007129133531842.gif"" width="24"

height="16"></a></p>
  <p><input type="submit" value="submit" name="b1"></p>
</form>
</body>
</html>
===========================================================

2、calendar.asp
===========================================================
<%
web calendar
by chaiwei 2002-7-31
--------------------------------

月份名称定义
dim month_name(12)
month_name(1) = "january"
month_name(2) = "february"
month_name(3) = "march"
month_name(4) = "april"
month_name(5) = "may"
month_name(6) = "june"
month_name(7) = "july"
month_name(8) = "august"
month_name(9) = "september"
month_name(10) = "october"
month_name(11) = "november"
month_name(12) = "december"

年份处理,默认值为服务器当前年份
if request.querystring("year")<>"" then
    year_var=cint(request.querystring("year"))
else
    year_var=year(date())
end if

上一年、下一年赋值
previous_year=year_var-1
next_year=year_var+1


月份处理,默认值为服务器当前月份
if request.querystring("month")<>"" then
    month_var=cint(request.querystring("month"))
else
    month_var=month(date())