<html>
<head>
<title> 年月日三下拉框联动 </title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<script src="js/jquery.js" type="text/javascript"></script>
<script type="text/javascript">
(function ($) {
$.extend($.fn, {
sjSelect: function (options) {
// 默认参数
var settings = {
s_year: 1920,
e_year: new Date().getFullYear()+1,
index: null,
cssClass: "lSelect" // 下拉框css名称
};
$.extend(settings, options);
return this.each(function () {
var $this = $(this);
var MonHead = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
var _selstr = "";
var _selArr;
if (typeof ($this.attr("sel")) != "undefined") {
_selstr = $this.attr("sel");
_selArr = _selstr.split(',');
$this.val(_selstr);
}
var _rIndex = settings.index == null ? "" + Math.round(Math.random() * 1000000) : settings.index;
var _allstr = "<select class='" + settings.cssClass + " year" + _rIndex
+ "'><option vlaue=''>请选择年份</option>";
for (var i = settings.s_year; i < settings.e_year; i++) {
_allstr += "<option vlaue='" + i + "'";
if (_selstr.length > 0) {
if (i == _selArr[0]) {
_allstr += " selected";
}
}
_allstr += ">" + i + "年</option>";
}
_allstr += "</select>";
_allstr += "<select class='" + settings.cssClass + " month" + _rIndex
+ "'><option vlaue=''>请选择月份</option>";
for (var k = 1; k <= 12; k++) {
_allstr += "<option vlaue='" + k + "'";
if (_selstr.length > 0) {
if (k == _selArr[1]) {
_allstr += " selected";
}
}
_allstr += ">" + k + "月</option>";
}
_allstr += "</select>";
var n = 0;
if (_selstr.length > 0) {
n = MonHead[_selArr[1] - 1];
if (_selArr[1] == 2 && IsPinYear(_selArr[0])) {
n++;
}
} else {
var _cTime = new Date();
var _cMonth = _cTime.getMonth();
var _cYear = _cTime.getYear();
n = MonHead[_cMonth];
if (_cMonth == 1 && IsPinYear(_cYear)) {
n++;
}
}
_allstr += "<select class='" + settings.cssClass + " day" + _rIndex
+ "'><option vlaue=''>请选择日</option>";
for (var h = 1; h <= n; h++) {
_allstr += "<option vlaue='" + h + "'";
if (_selstr.length > 0) {
if (h == _selArr[2]) {
_allstr += " selected";
}
}
_allstr += ">" + h + "日</option>";
}
_allstr += "</select>";
$this.after(_allstr);
function IsPinYear(year) {//判断是否闰平年
return (0 == year % 4 && (year % 100 != 0 || year % 400 == 0));
}
function writeDay(n) { //据条件写日期的下拉框
var _daystr = "<option vlaue=''>请选择日</option>";
for (var i = 1; i <= n; i++) {
_daystr += "<option vlaue='" + i + "'>" + i + "日</option>";
}
$(".day" + _rIndex).html(_daystr);
}
function getJlSelVal() {
var _year_val = $(".year" + _rIndex).val();
var _month_val = $(".month" + _rIndex).val();
var _day_val = $(".day" + _rIndex).val();
if (_year_val == "请选择年份" || _month_val == "请选择月份" || _day_val == "请选择日") {
$this.val("");
} else {
var _lastval = _year_val.substring(0, _year_val.length - 1)
+ "," + _month_val.substring(0, _month_val.length - 1)
+ "," + _day_val.substring(0, _day_val.length - 1);
$this.val(_lastval);
}
}
$(".day" + _rIndex).change(function () {
getJlSelVal();
});
$(".year" + _rIndex).change(function () {//年发生变化时日期发生变化(主要是判断闰平年)
var MMvalue = $(".month" + _rIndex).val();
if (MMvalue == "请选择月份") {
$(".day" + _rIndex).html("<option value=''>请选择日</option>");
return;
}
var n = MonHead[MMvalue.substring(0, MMvalue.length - 1) - 1];
var YYval = $(".year" + _rIndex).val();
if (MMvalue.substring(0, MMvalue.length - 1) == 2 && IsPinYear(YYval.substring(0, YYval.length - 1))) {
n++;
}
writeDay(n);
getJlSelVal();
});
$(".month" + _rIndex).change(function () {//月发生变化时日期联动
var YYYYvalue = $(".year" + _rIndex).val();
if (YYYYvalue == "请选择年份") {
$(".day" + _rIndex).html("<option value=''>请选择日</option>");
return;
}
var MMvalue = $(".month" + _rIndex).val();
var _cmon = MMvalue.substring(0, MMvalue.length - 1);
var n = MonHead[_cmon - 1];
if (_cmon == 2 && IsPinYear(YYYYvalue.substring(0, YYYYvalue.length - 1)))
n++;
writeDay(n);
getJlSelVal();
});
});
}
});
})(jQuery);
$(function () {
$(".gg").sjSelect();
$("#dd").click(function () {
$(".gg").each(function () {
alert($(this).val());
});
});
});
</script>
</head>
<body>
<input type="hidden" class="gg" sel="1989,10,1" />
<input type="hidden" class="gg" sel="2008,2,29" />
<input type="button" id="dd" />
</body>
</html>
- 浏览: 100402 次
- 性别:
- 来自: 北京
最新评论
-
_大大大雄:
关于这个应用, 有些东西想要请教下您行么?
jsp 权限过滤器的应用 -
jptiancai:
博主,看了博客,收获很多,这个例子运行的时候,会报下面的错误: ...
jsp 权限过滤器的应用
发表评论
-
backbone学习资料
2015-07-20 16:37 642理论知识 backbone.js 初探http://we ... -
解析目录树
2015-06-19 19:31 500<ul id="test"> ... -
csv生成
2015-06-19 19:29 636<head> <meta -
网站性能优化解决方案
2015-06-15 14:40 749最近通过查阅资料,发现了一些其他可以提高性能优化的方案1. 使 ... -
八种创建等高列布局
2015-01-04 17:11 592高度相等列在Web页面设计中永远是一个网页设计师的需求。如果 ... -
多次调用同一异步方法体会出现使用相同的属性值问题
2014-11-27 17:56 1701《一》执行同一个方法体,里面有异步的逻辑代码,如果这个异步 ... -
时间的计算
2014-11-19 14:42 595using System; namespace Be ... -
async when then
2014-11-14 11:45 675function test1(){ var def ... -
异步并行串行编程 when
2014-11-14 11:40 723var data = { "51": ... -
HTML 与javascript自解码机制
2014-02-19 14:41 1271关于这个自解码机制,我们直接以一个例子(样例0)来进行说明: ... -
三列百分之比布局
2014-02-11 13:56 662三列布局自适应 -
JSp生重复提交解决方法
2014-01-08 15:42 711看了网上的,有几种方法: 1 在你的表单页里HEAD区加入这段 ... -
AMD 和 CMD 的区别有哪些?
2013-12-25 11:37 735AMD 是 RequireJS 在推广过程中对模块定义的规范化 ... -
firefox 专属css hack
2013-12-20 15:50 705之前只有ie6、ie6、firefox时,只要写!impo ... -
自适应网页设计
2013-11-29 10:39 793一、简单描述:随着移 ... -
跨浏览器兼容性总结
2013-11-25 10:16 3471一、 CSS样式兼容 1. F ... -
IE6 PNG背景透明解决方法(汇总)
2013-10-31 18:25 670IE6 PNG背景透明解决方法(汇总) 方法一: IE6 ... -
兼容IE6 min-width 的CSS 样式
2013-10-23 19:12 877IE6另外一个bug就是它不支持 min-width 属性. ... -
IE6 position:fixed bug (固定窗口方法)
2013-10-23 17:26 802今天herb同 学在twitter上 ... -
不确定图片大小让元素水平垂直居中
2013-10-23 16:53 773<!DOCTYPE html PUBLIC " ...
相关推荐
在本文中,我们将深入探讨如何在JSP(JavaServer Pages)中实现一个基于JavaScript的出生日期三级级联下拉列表。这种功能常用于用户注册、个人信息填写等场景,让用户能够方便地选择他们的出生年、月和日。 首先,...
多层选择 开关 评分 滑块 步进器 日期框 级联选择 下拉列表 复选框 单选框 多行文本 单行文本 textarea radio checkbox picker stepper input ,引用组件或者复制粘贴使用,提高工作效率。
通常,这样的选择器会包含年、月、日的滑动选择或者下拉菜单,使得用户可以快速、准确地设定日期,避免手动输入可能带来的错误。 级联选择器(Cascading Selectors)则是一种允许用户从一系列相关选项中逐级选择的...
在网页开发中,有时我们需要创建级联的下拉列表,比如年、月、日,以供用户选择日期。本示例将详细介绍如何使用jQuery来实现这样的功能。首先,我们需要了解jQuery的基本用法以及如何处理DOM元素。 jQuery是一个...
Picker组件是uni-app提供的一种UI控件,用于显示一个可滚动的选择列表,通常用于日期选择、时间选择或自定义数据选择等。 一、一级选择器 一级选择器是最简单的形式,通常用于单列选择。在uni-app中,我们可以使用`...
`mobiscroll版时间 日期 下拉 省市区级联.zip`则是mobiscroll组件的压缩包,包含了相关的CSS和JS文件,用于构建级联选择器。`css`和`js`目录则分别存储了项目的样式表和脚本文件。 综上所述,这个项目展示了HTML5的...
在创建日期级联时,HTML元素如`<select>`会被用来创建下拉菜单,用户可以从中选择日期的各个部分。例如,我们可以创建三个`<select>`元素,分别对应年、月和日,每个菜单中的选项都是动态生成的。 接着,JavaScript...
在Android应用中,这通常表现为三个连续的下拉列表,每个列表的选项都基于前一个列表的选择动态更新。例如,在选择日期时,用户首先选择年份,然后根据所选年份筛选出相应的月份,最后再根据月份筛选出对应的日期。 ...
级联效果的实现首先需要定义三个下拉列表(select),分别用于选择年份、月份和日期。如下代码所示: ```html (this.value)"> 请选择年 (this.value)"> 选择月 选择日 ``` 每个`select`元素都有一...
Combobox是一种下拉选择框,用户可以在预设的选项中进行选择。在某些场景下,我们需要根据前一列的选择来动态改变Combobox的选项,这就是级联(cascading)的概念。 实现级联编辑器的关键在于监听Datagrid的`...
它支持多种类型的输入,如文本、选择框、日期等,其中就包括了下拉框(select)编辑类型。这个功能使得用户可以直接在页面上修改表格数据,而无需跳转到新的页面或者弹出模态框。 在Bootstrap Table中集成`...
autocomplete自动完成、checkbox多选框、cascader级联选择、datepicker日期选择框、form表单、inputnumber数字输入框、input输入框、mentions提及、rate评分、radio单选框、switch开关、slider滑动输入框、select...
- CascadingDropdown:级联下拉列表,当用户在一个下拉列表中选择一项时,另一个下拉列表会根据此选择自动填充。 - MaskedEdit:掩码编辑器,用于输入符合特定格式的数据,如电话号码或日期。 - ModalPopup:模态弹...
包含导航、颜色、字体、边框、图标、按钮、文字链接、单选框、多选框、输入框、计数器、选择器、级联选择器、开关、滑块、时间选择器、日期选择器、日期时间选择器、上传、评分、颜色选择器、穿梭框、表单、表格、...
【CascadingDropDown】控件是一个用于实现级联下拉列表的组件,它可以将一个下拉列表的选择影响另一个下拉列表的内容,常用于在选择省份后自动填充城市列表等场景。 【TextBoxWatermarkExtender】则为文本框添加了...
5. **JS+CSS和图片美化下拉列表选择框(select).txt**:此文件可能是关于使用JS和CSS美化HTML select元素,通过自定义样式和交互,使原本生硬的下拉列表变得更具视觉吸引力。 6. **JS树形菜单.txt**:树形菜单在...
- jQuery controlled dependent (or Cascading) Select List:创建级联下拉列表。 - Multiple Selects:支持多选的下拉框。 - Select box manipulation:提供对选择框的各种操作方法。 - jQuery - LinkedSelect...
- jQuery controlled dependent (or Cascading) Select List:创建级联下拉菜单。 - Multiple Selects:支持多选的下拉菜单。 - Select box manipulation:控制和定制选择框的行为。 - Select Combo Plugin:...
实验中,jQuery用于实现更方便的DOM操作,如级联下拉列表的实现,这可能涉及到`$("#native_place")`的选择器以及`.change()`事件监听。 5. jQuery UI: 是jQuery的一个扩展库,提供了一些可复用的用户界面组件,如...
11. CascadingDropDown:级联下拉列表,一个下拉列表的选择会影响另一个下拉列表的选项。 12. CollapsiblePanel:允许用户折叠和展开面板内容,节省页面空间。 13. ConfirmButtonExtender:在点击按钮前弹出确认...