`
hudeyong926
  • 浏览: 2037275 次
  • 来自: 武汉
社区版块
存档分类
最新评论

JS 年月日联动选择器

阅读更多

一个日期联动选择器,年月日联动显示,准确显示日期(包括闰年日期),可自定义日期范围。

效果预览:


 程序说明

【select】

先说清空一个select,最简单的方法是把options的length设为0就可以了:

oSelect.options.length = 0;

 给select添加option,有多个方法,如果用dom的标准方法是:

var op = document.createElement("option"); op.value = i; op.innerHTML = i; oSelect.appendChild(op);

 对于option有更方便的方法:

oSelect.options.add(new Option(i, i));

其中new Option的第一个参数是显示的文本值,第二个是value值。
利用options.add的第二个可选参数可以把options插入到指定的索引位置,还有一个remove方法可以移除指定索引的options。
要注意的是options下标从0开始。

不过我这里用了一个看来比较笨的方法:

oSelect.options.length = iLength;
for (var i = 0; i < iLength; i++) { oSelect.options[i].text = oSelect.options[i].value = iStart + i; }

 别看这么笨,却是最有效率的,而且不用每次都清空select,下面可以测试一下:

<select id="testSel"></select>
<div id="testShow"></div>
<input name="" type="button" value="效率测试" id="testBtn" />

<script>
document.getElementById("testBtn").onclick = function(){

var testSel = document.getElementById("testSel"), testShow = document.getElementById("testShow"), iMin = 0, iMax = 1000, dt;
testShow.innerHTML = "";

dt = new Date().getTime();

var len = iMax - iMin + 1; testSel.options.length = len;
for (var i = 0; i < len; i++) { testSel.options[i].text = testSel.options[i].value = iMin + i; }

testShow.innerHTML += "笨方法:" + (new Date().getTime() - dt) + " 毫秒;";

dt = new Date().getTime();

testSel.options.length = 0;
for (var i = iMin; i <= iMax; i++) { testSel.options.add(new Option(i, i)); }

testShow.innerHTML += "new Option方法:" + (new Date().getTime() - dt) + " 毫秒;";

dt = new Date().getTime();

testSel.options.length = 0;
for (var i = iMin; i <= iMax; i++) { var op = document.createElement("option"); op.value = i; op.innerHTML = i; testSel.appendChild(op); }

testShow.innerHTML += "dom方法:" + (new Date().getTime() - dt) + " 毫秒;";

}

</script>

  还有一个更快的方法,就是使用outerHTML,但这个会对select本身操作而且不兼容就不推荐了。

最后就是设置默认项,一般的方法是设置selectedIndex属性:

oSelect.selectedIndex = iIndex;

 但要注意的是在ie6如果用dom方法创建option,然后立即设置selectedIndex会无效。
可以测试一下(在ie6测试):

<select id="idSelected"></select>
<input name="" type="button" value="默认项测试" id="testBtnSelected" />
<script>
document.getElementById("testBtnSelected").onclick = function(){
    var oSelect = document.getElementById("idSelected");
    oSelect.options.length = 0;
    for (var i = 0; i <= 10; i++) {
        var op = document.createElement("option"); op.value = op.innerHTML = i; oSelect.appendChild(op);
    }
    oSelect.selectedIndex = 5;
}
</script> 

除了换另外两个方法创建select,还有三个方法解决,首先可以在添加option的同时设置:

if(i == 4){ op.selected = true; }

还可以用setTimeout延迟一下:

setTimeout(function(){ oSelect.selectedIndex = iIndex; }, 0);

 最后是比较推荐的用setAttribute来设置:

oSelect.options[iIndex].setAttribute("selected", "true");

 注意这个方法如果结合笨方法使用的话在ff中会设置失败。

这样关于select的相关操作就介绍完了。

使用说明:

首先是实例化一个DateSelector,其中三个参数分别是年月日的select对象。
可选参数:
Year:  0,//年
Month:  0,//月
Day:  0,//日
MinYear: 0,//最小年份
MaxYear: 0,//最大年份
onChange: function(){}//日期改变时执行

  • 大小: 5.5 KB
分享到:
评论

相关推荐

    js年月日三级联动代码

    总之,"js年月日三级联动代码"是通过JavaScript监听年份选择的改变,动态生成对应的月份和日期选项,以实现日期选择的联动效果。这个功能在许多网页表单中都很常见,对于用户输入日期提供了便利。在实际开发中,我们...

    年月日联动选择,Js下拉框的选择

    本文将详细讲解如何使用JavaScript来实现年月日的联动选择,以及在HTML中设置下拉框的选择。 首先,我们需要理解什么是联动选择。联动选择是指当用户在一个下拉框中做出选择时,其他相关的下拉框会自动更新其选项,...

    JS年月日三级联动下拉框日期选择代码

    本文将详细讲解如何使用JavaScript实现年、月、日三级联动的下拉框日期选择器。 首先,我们需要理解“三级联动”这个概念。在年月日的日期选择器中,"三级联动"意味着当用户在一级(年份)下拉框中选择一个年份后,...

    微信小程序 -- 年月日时分秒 picker 选择器

    为了实现一个完整的年月日时分秒`picker`选择器,我们需要进行以下步骤: 1. **创建组件结构**:首先,建立一个新的`WXML`(微信小程序的结构文件)和`WXSS`(样式文件),以及对应的`JS`(逻辑文件)来封装这个...

    年月日时分 --五级时间联动

    标题“年月日时分 --五级时间联动”表明我们要讨论的是一个具有五个级别的时间选择器,分别是年、月、日、时和分。这种联动意味着当用户在某一级别(如年)中做出选择时,其他级别(如月、日、时、分)会自动更新其...

    前端年月日三级联动用到的js文件data.zip

    在前端开发中,有时我们需要创建一个用户界面,其中包含选择日期的组件,这通常涉及到年、月、日的三级联动选择。"前端年月日三级联动用到的js文件data.zip"是一个压缩包,其中包含了实现这种功能的JavaScript代码。...

    jquery年月日三级联动

    6. **样式和美化**:为了让年月日选择器更具吸引力,可以使用CSS或Bootstrap等前端框架进行样式定制,使其符合整体页面的风格。 在实际开发中,可能会有一个名为"jquery年月日"的压缩包,其中包含了实现这个功能的...

    JQuery年月日三级下拉框联动

    在实现年月日联动下拉框时,主要依赖于JQuery的选择器功能来获取元素,以及事件监听和触发来实现联动效果。 首先,我们需要三个下拉框元素,分别代表年、月、日。在HTML代码中,为这三个元素设置ID以便后续JQuery...

    年月日时分秒联动

    在IT领域,"年月日时分秒联动"通常指的是在软件或系统设计中实现的一种时间选择功能。这种功能允许用户以交互的方式选取特定的时间点,包括年、月、日、小时、分钟和秒,各个部分之间联动更新,确保所选时间的准确性...

    jQuery年月日三级联动(生日)插件

    然后,可以通过jQuery选择器找到这些元素,并调用插件方法来初始化和应用插件。 在实际应用中,这个插件可以广泛应用于各种表单中,尤其是在需要用户输入生日或特定日期的场景。它的使用不仅提升了用户界面的友好性...

    javascript 年月日联动实现核心代码

    最后,我们可以使用这个javascript 年月日联动实现核心代码来实现年月日四级联动的效果,例如在日期选择器中实现年月日的联动效果。 javascript 年月日联动实现核心代码是实现年月日四级联动的核心技术,可以广泛...

    时间选择器和三级联动选择器

    "时间选择器"和"三级联动选择器"是常见的交互元素,广泛应用于各种应用程序和网站中,尤其是那些需要用户输入特定时间或进行多级筛选的场景。 时间选择器是一种允许用户方便地选取日期、时间或者日期时间的组件。它...

    年月日三级联动下拉列表

    可能需要调整布局或使用更灵活的组件,如日期选择器插件。 6. 优化性能:如果数据量很大,可以考虑使用异步加载或懒加载技术,只在用户需要时加载相应的数据,减少初次加载时的网络负担。 7. 错误处理:添加适当的...

    html年月日三下拉框联动

    通过以上分析,我们不仅理解了HTML年月日三下拉框联动的基本原理,还学习了如何使用JavaScript进行事件处理、操作DOM元素以及处理日期相关的逻辑。这种技术在构建用户友好的网页表单和日期选择器时非常有用。掌握...

    javaScript 实现的年月日三级联动

    在网页设计中,年、月、日三级联动通常指的是用户在选择日期时,选择年份会自动影响月份的选择,月份选择后又会影响日期的选择,这种功能常见于日期输入框。下面将详细介绍如何使用JavaScript实现这样的功能。 首先...

    JS年月日三级联动下拉框

    在网页开发中,用户界面经常需要提供选择日期的控件,这时“年月日三级联动下拉框”就显得尤为重要。这种设计模式可以为用户提供一个直观且高效的日期选择方式,通常由三个下拉菜单组成,分别对应年、月、日,用户...

    JS年月日三级联动下拉框日期选择代码.zip

    在JavaScript(JS)编程中,实现年月日三级联动下拉框日期选择是一种常见的需求,尤其是在网页表单或交互式用户界面中。这种设计允许用户通过三个下拉菜单分别选择年、月和日,形成一个完整的日期。在这个"JS年月日...

    jQuery手机端出生年月日选择代码.zip

    这个代码库提供了一种优雅的解决方案,通过触屏点击输入框,可以弹出一个遮罩层,展示出生年月日的日期选择器,极大地提升了用户在手机端输入日期的便捷性。 jQuery,作为一款广泛使用的JavaScript库,以其简洁的...

    jQeruy年月日选择三级联动

    标题中的"jQeruy年月日选择三级联动"指的是利用jQuery开发的一种日期选择器,它实现了年、月、日的逐级选择功能。这种功能在网页表单、日历应用或者需要用户输入日期的场景中非常常见。 首先,要实现这个功能,我们...

    下拉框年月日3级联动

    在提供的文件中,有两个资源:"jQuery年月日三级联动(生日)[无法初始化值]"和"js年月日三级联动下拉框选择日期插件"。这表明实现这一功能可能依赖于jQuery,一个广泛使用的JavaScript库,它简化了DOM操作和事件处理...

Global site tag (gtag.js) - Google Analytics