javascript实现简单日期下拉选择器
2009-04-30 14:18
465 查看
我在工作的时候需要一个让用户选择日期的东西,由于要求不高,而且只需要简单的选择年月日时就行了,也就没有用Canledar从中学到一些js的处理知识,这里就把代码贴出来,欢迎大家拍砖.
$(document).ready(function() {
FillYears();
FillMonths();
FillDays();
FillHours();
selYear.onchange = function() { FillMonths(); FillDays(); FillHours(); };
selMonth.onchange = function() { FillDays(); FillHours(); };
selDay.onchange = function() { FillHours(); };
});
这里面使用到了selYear,selMonth,selDay这三个select.我在下面模拟这个效果一下,但是不再采用在$(document).ready中来填充select而是在button中启用事件的,别告诉我你不知道怎么在button中实现这个效果,其实就是把ready中的东西搬过来.
var selYear;
var selMonth;
var selDay;
var selHour;
function FillYears() {
var date = new Date();
var currYear = date.getFullYear();
for (var i = currYear; i < currYear + 10; i++) {
selYear.options[selYear.options.length] = new Option(i.toString(), i);
}
}
function FillMonths() {
var date = new Date();
var currYear = date.getFullYear();
var currMonth = date.getMonth() + 1;
// 清除原有月份
for (var i = selMonth.options.length; i > 0; i--) {
selMonth.options.remove(i - 1);
}
var selectedYear = parseInt(selYear.options[selYear.selectedIndex].value);
// 如果选择今年,那么从本月开始显示月份
if (selectedYear == currYear) {
// 添加新的月份
for (var i = currMonth; i <= 12; i++) {
selMonth.options[selMonth.options.length] = new Option(i, i);
}
}
else {
for (var i = 1; i <= 12; i++) {
selMonth.options[selMonth.options.length] = new Option(i, i);
}
}
}
function FillDays() {
var date = new Date();
var currYear = date.getFullYear();
var currMonth = date.getMonth() + 1;
var currDay = date.getDate();
// 清除所有的天
for (var i = selDay.options.length; i > 0; i--) {
selDay.options.remove(i - 1);
}
var selectedYear = parseInt(selYear.options[selYear.selectedIndex].value);
var selectedMonth = parseInt(selMonth.options[selMonth.selectedIndex].value);
if (selectedYear == currYear && selectedMonth == currMonth) {
var tempDate = new Date(currYear, currMonth, 0);
for (var i = currDay; i <= tempDate.getDate(); i++) {
selDay.options[selDay.options.length] = new Option(i, i);
}
}
else {
var tempDate = new Date(selectedYear, selectedMonth, 0);
var days = tempDate.getDate();
for (var i = 1; i <= days; i++) {
selDay.options[selDay.options.length] = new Option(i, i);
}
}
}
function FillHours() {
var date = new Date();
var currYear = date.getFullYear(); // 这个获取的就是今年
var currMonth = date.getMonth() + 1;
var currDay = date.getDate(); // 这个获取的就是今天的日期
var currHour = date.getHours();
for (var i = selHour.options.length; i > 0; i--) {
selHour.options.remove(i - 1);
}
var selectedYear = parseInt(selYear.options[selYear.selectedIndex].value);
var selectedMonth = parseInt(selMonth.options[selMonth.selectedIndex].value);
var selectedDay = parseInt(selDay.options[selDay.selectedIndex].value);
if ((selectedYear == currYear) &&
(selectedMonth == currMonth)
&& (selectedDay == currDay)) {
for (var i = currHour; i <= 24; i++) {
selHour.options[selHour.options.length] = new Option(i, i);
}
} else {
for (var i = 1; i <= 24; i++) {
selHour.options[selHour.options.length] = new Option(i, i);
}
}
}
function bindEvent()
{
selYear = document.getElementById("selYear");
selMonth = document.getElementById("selMonth");
selDay = document.getElementById("selDay");
selHour = document.getElementById("selHour");
FillYears();
FillMonths();
FillDays();
FillHours();
selYear.onchange = function() { FillMonths();FillDays(); FillHours(); };
selMonth.onchange = function() { FillDays(); FillHours(); };
selDay.onchange = function() { FillHours(); };
}
function unbindEvent()
{
for(var i = selHour.options.length;i > 0;i--)
{
selHour.options.remove(i-1);
}
for(var i = selDay.options.length;i > 0;i--)
{
selDay.options.remove(i-1);
}
for(var i = selMonth.options.length;i > 0;i--)
{
selMonth.options.remove(i-1);
}
for(var i = selYear.options.length;i > 0;i--)
{
selYear.options.remove(i-1);
}
selYear.onchange = function(){};
selMonth.onchange = function(){};
selDay.onchange = function(){};
selHour.onchange = function(){};
}
年 月 日 时
$(document).ready(function() {
FillYears();
FillMonths();
FillDays();
FillHours();
selYear.onchange = function() { FillMonths(); FillDays(); FillHours(); };
selMonth.onchange = function() { FillDays(); FillHours(); };
selDay.onchange = function() { FillHours(); };
});
这里面使用到了selYear,selMonth,selDay这三个select.我在下面模拟这个效果一下,但是不再采用在$(document).ready中来填充select而是在button中启用事件的,别告诉我你不知道怎么在button中实现这个效果,其实就是把ready中的东西搬过来.
var selYear;
var selMonth;
var selDay;
var selHour;
function FillYears() {
var date = new Date();
var currYear = date.getFullYear();
for (var i = currYear; i < currYear + 10; i++) {
selYear.options[selYear.options.length] = new Option(i.toString(), i);
}
}
function FillMonths() {
var date = new Date();
var currYear = date.getFullYear();
var currMonth = date.getMonth() + 1;
// 清除原有月份
for (var i = selMonth.options.length; i > 0; i--) {
selMonth.options.remove(i - 1);
}
var selectedYear = parseInt(selYear.options[selYear.selectedIndex].value);
// 如果选择今年,那么从本月开始显示月份
if (selectedYear == currYear) {
// 添加新的月份
for (var i = currMonth; i <= 12; i++) {
selMonth.options[selMonth.options.length] = new Option(i, i);
}
}
else {
for (var i = 1; i <= 12; i++) {
selMonth.options[selMonth.options.length] = new Option(i, i);
}
}
}
function FillDays() {
var date = new Date();
var currYear = date.getFullYear();
var currMonth = date.getMonth() + 1;
var currDay = date.getDate();
// 清除所有的天
for (var i = selDay.options.length; i > 0; i--) {
selDay.options.remove(i - 1);
}
var selectedYear = parseInt(selYear.options[selYear.selectedIndex].value);
var selectedMonth = parseInt(selMonth.options[selMonth.selectedIndex].value);
if (selectedYear == currYear && selectedMonth == currMonth) {
var tempDate = new Date(currYear, currMonth, 0);
for (var i = currDay; i <= tempDate.getDate(); i++) {
selDay.options[selDay.options.length] = new Option(i, i);
}
}
else {
var tempDate = new Date(selectedYear, selectedMonth, 0);
var days = tempDate.getDate();
for (var i = 1; i <= days; i++) {
selDay.options[selDay.options.length] = new Option(i, i);
}
}
}
function FillHours() {
var date = new Date();
var currYear = date.getFullYear(); // 这个获取的就是今年
var currMonth = date.getMonth() + 1;
var currDay = date.getDate(); // 这个获取的就是今天的日期
var currHour = date.getHours();
for (var i = selHour.options.length; i > 0; i--) {
selHour.options.remove(i - 1);
}
var selectedYear = parseInt(selYear.options[selYear.selectedIndex].value);
var selectedMonth = parseInt(selMonth.options[selMonth.selectedIndex].value);
var selectedDay = parseInt(selDay.options[selDay.selectedIndex].value);
if ((selectedYear == currYear) &&
(selectedMonth == currMonth)
&& (selectedDay == currDay)) {
for (var i = currHour; i <= 24; i++) {
selHour.options[selHour.options.length] = new Option(i, i);
}
} else {
for (var i = 1; i <= 24; i++) {
selHour.options[selHour.options.length] = new Option(i, i);
}
}
}
function bindEvent()
{
selYear = document.getElementById("selYear");
selMonth = document.getElementById("selMonth");
selDay = document.getElementById("selDay");
selHour = document.getElementById("selHour");
FillYears();
FillMonths();
FillDays();
FillHours();
selYear.onchange = function() { FillMonths();FillDays(); FillHours(); };
selMonth.onchange = function() { FillDays(); FillHours(); };
selDay.onchange = function() { FillHours(); };
}
function unbindEvent()
{
for(var i = selHour.options.length;i > 0;i--)
{
selHour.options.remove(i-1);
}
for(var i = selDay.options.length;i > 0;i--)
{
selDay.options.remove(i-1);
}
for(var i = selMonth.options.length;i > 0;i--)
{
selMonth.options.remove(i-1);
}
for(var i = selYear.options.length;i > 0;i--)
{
selYear.options.remove(i-1);
}
selYear.onchange = function(){};
selMonth.onchange = function(){};
selDay.onchange = function(){};
selHour.onchange = function(){};
}
年 月 日 时
相关文章推荐
- javascript实现简单日期下拉选择器
- Android进阶之路 - timeSelector(日期选择器)简单、方便、快速的实现方式
- javascript实现二级下拉框(简单的方式)
- 纯javascript实现简单下拉刷新功能
- Android实现三级联动下拉框 城市选择器(简单)
- 用javascript的下拉列表菜单中选中所需要运算的数值来实现简单的加法运算
- 一个简单的例子:javascript实现日期的比较(3)
- Javascript实现简单的下拉二级菜单
- javascript实现日期三级联动下拉框选择菜单
- 纯javascript实现简单下拉刷新功能
- 简单的javascript实现下拉联动效果
- Javascript实现简单的下拉二级菜单
- Javascript实现简单的下拉二级菜单
- javaScript给元素添加多个class的简单实现
- 原生JavaScript实现一个简单的todo-list
- JavaScript对象封装的简单实现方法(3种方法)
- 用javascript实现的日期时间输入控件
- 简单实现JavaScript图片切换效果
- javascript 小数取整简单实现方式
- Javascript实现简单的选项卡