写一个项目,遇到需求:只输入年月。我在网上找不半天的JS控件,无果。TX哥们让我自已写个,好吧。那就写试试。
不要紧,一写就是两天。居然都没成功。晕。。。。。。上代码。下面。
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>MyCalendar</title>
<script type="text/javascript" src="jquery-1.6.min.js"></script>
<script type="text/javascript">
$(function(){
function YMCal(obj){
this.output_ym="";
this.cur_year=new Date().getFullYear();
this.start_year=1936;
this.sl_year=0;
this.sl_month=12;
this.init=function(){
for(var i=this.start_year;i<=this.cur_year;i++){
$("<option value='"+i+"年'>"+i+"年</option>").appendTo("#ym_year");
}
if(obj.val()!=null&&obj.val()!=""){
this.sl_year=obj.val().substr(0,4);
this.sl_month=obj.val().substring(5,obj.val().length-1);
}else{
this.sl_year=this.cur_year-24;
}
$("#ym_month table tr td").removeClass("m_select");
$("#ym_month table tr td:eq("+(this.sl_month-1)+")").addClass("m_select");
$("#ym_year option[value='"+this.sl_year+"年']").attr("selected", true);
$("#ym_calendar").css("margin-left",obj.position().left-6);
$("#ym_calendar").show();
$("#ym_calendar").insertAfter(obj);
$("#ym_month table tr td").hover(function(){
$(this).addClass("focus");
},function(){
$(this).removeClass("focus");
}).click(function(){
this.sl_month=$(this).text();
this.sl_year=$("#ym_year").find("option:selected").text();
this.output_ym=this.sl_year+this.sl_month;
obj.val(this.output_ym);
$("#ym_calendar").hide();
});
obj.blur(function(){
$("#ym_calendar").hide();
});
};
}
$("#myCalendar").click(function(){
var ymCal= new YMCal($(this));
ymCal.init();
});
$("#myCalendar2").click(function(){
var ymCal= new YMCal($(this));
ymCal.init();
});
});
</script>
<style type="text/css">
#ym_calendar {
z-index: 99;
position: absolute;
width: 170px;
color: black;
border: #A9A9FF 1px solid;
background: white;
padding: 1px;
}
#ym_calendar .title {
width: 100%;
background: green;
clear: both;
color: white;
font-size: 12px;
letter-spacing: 1px;
padding: 2px 0 2px 0;
text-align: center;
font-weight: bold;
}
#ym_calendar .title #year_text{
margin-right: 20px;
}
#ym_calendar #ym_year{
margin-right:0px;
}
#ym_calendar #ym_month{
width: 100%;
height: 90px;
background: #F9F7FF;
margin-top: 5px;
}
#ym_calendar #ym_month table tr td.focus {
background: white;
border: solid 1px #A9A9FF;
}
#ym_calendar #ym_month table tr td.m_select {
font-weight: bold;
cursor: default;
}
#ym_calendar #ym_month table tr td{
padding: 2px;
text-align: center;
color: #3F419E;
cursor: pointer;
font-family: Arial, Helvetica, sans-seri
}
</style>
</head>
<body>
<div id="ym_calendar" style="display: none;">
<div class="title" ><span id="year_text">教育年份</span>
<select id="ym_year"></select>
</div>
<div id="ym_month">
<table style="width: 100%">
<tr>
<td width="25%">1月</td>
<td width="25%">2月</td>
<td width="25%">3月</td>
<td width="25%">4月</td>
</tr>
<tr>
<td width="25%">5月</td>
<td width="25%">6月</td>
<td width="25%">7月</td>
<td width="25%">8月</td>
</tr>
<tr>
<td width="25%">9月</td>
<td width="25%">10月</td>
<td width="25%">11月</td>
<td width="25%">12月</td>
</tr>
</table>
</div>
</div>
<input type="text" id="myCalendar" readonly="readonly" value="1989年12月" />
<input type="text" id="myCalendar2" readonly="readonly" value="1987年3月" />
<br/><input/>
</body>
</html>
1.我希望点击的时候,改变input域的值。之前写的乱的时候,click事件还有效,后来封装 了个YMCal Object click事件没效果。
2.点击input域时,弹出ym_calendar div日历。这个div要与input域左对齐,正下方。覆盖 在其中层之上。似乎对齐在ie下有些不兼容。
3.如果一个页面里有二个以上的地方需要这个日历,但是同一时刻只弹出一个ym_calendar div,所以好的设计应该使页面内只有一个ym_calendar div,而不是clone。同一个div, 与两个input域的关系,传参得注意了。我的click事件有时候会有效,然后点击的时候, 两个input域同时改变值。
4.我想应该有更好的封装方式。使调用的时候像jquery ui datepicker 一样,$.datepicker({param:param1});
呵呵。js没学好。高手教教我。把这个项目整完。我留点时间写写我接下来的四次面试。
- 大小: 14.4 KB
分享到:
相关推荐
`myCalendar.js`的核心是通过JavaScript实现一个交互式的日期和时间选择器,支持年、月、日、小时、分钟和秒的选择。该控件具有良好的可定制性,开发者可以根据需求调整样式和功能,使其与项目中的其他元素保持一致...
- **直观界面**:Calendar JS提供了一个简洁且易于理解的界面,使得用户在选择日期时能快速定位。 - **多语言支持**:该插件支持多种语言,可以方便地切换,满足全球化网站的需求。 - **自定义样式**:通过CSS,...
在网页开发中,用户界面(UI)...总的来说,JS年月选择控件是一个结合了HTML、CSS和JavaScript技术的实例,它通过提升用户体验展示了前端开发的魅力。在实践中,不断学习和优化这些技能,可以使你的网页应用更加出色。
VS2008自带的Calendar只能一个月一个月的切换,你要选几年前的就受不子,于是本人经过三天的学习制作终于完成了二个DropDownList(年与月的选择)与Calendar互动的绑定,并做成控件,可供初学控件的朋友学习,并提出...
织织网应实际使用开发的一个js年月选择器,采用原生js开发,兼容IE、FF(Firefox)、谷歌(Chrome),其他杂牌浏览器都是基于这三种内核的,就不一一测试了。 插件非常的简单,完全开源,可以做二次开发。 因为很...
总的来说,"js年月组件"是前端开发中的一个实用工具,它结合了JavaScript的DOM操作、事件处理、数据处理和UI设计等多个方面,是提升用户体验的重要组成部分。通过学习和实践此类组件的开发,开发者可以提高自己的...
在JavaScript编程中,时间控件是一种...它包含了两个不同特性的年月选择器,一个是通用型,一个是专门针对年月的。通过学习和使用这些控件,开发者可以提升用户体验,同时也能深入理解JavaScript日期处理和DOM交互。
在JavaScript编程中,"年月日三级联动"通常是指在一个网页表单中,用户选择年份后,月份和日期会自动根据所选年份更新其可选项,形成一个连续的下拉选择效果。这种功能常见于日期选择器,能够提高用户体验,避免用户...
纯js年月日联动,无刷新下拉框,符合日期规则,手动更改起止年
通过以上步骤,开发者能够轻松地在项目中集成一个功能完备且符合设计需求的年月选择控件。这样的控件不仅提高了用户体验,也使得数据输入更加标准化,便于后端处理和存储。在实际开发过程中,还应考虑浏览器兼容性、...
本文将详细解析如何使用JavaScript实现这一功能,并结合提供的描述和标签,探讨一个自定义的函数以及一个额外的验证函数。 首先,我们要明白JavaScript中的日期处理主要依赖于`Date`对象。我们可以创建一个新的`...
通常,这种控件会展示一个下拉菜单,菜单中包含一系列的年份选项,用户可以通过滚动或搜索功能找到所需的年份。在处理历史数据、年龄输入或者设置长期计划的场景下,年份选择控件非常有用。例如,在填写出生日期时,...
在Vue.js框架中,开发一个可以灵活选择年月或年月日的日期控件是一项常见的需求。这个控件应提供用户友好的界面,允许用户轻松地选择特定的时间范围。在这个场景下,我们可以利用Element UI库,它为Vue.js提供了丰富...
标题中的“年月js控件,没有日”指的是一个JavaScript组件,它专门用于显示和处理年份和月份的选择,而不包含日期部分。这样的控件在某些场景下可能会有用,例如只需要用户选择年份和月份而不需要精确到日期的场合。...
在这个场景中,我们讨论的是一个特定的JS组件,即“js年月日周时间范围控件”。这个控件为用户提供了一种方便的方式来选择日期、月份、周和具体时间,并且允许用户设定周的起始日。 首先,这个控件提供了年、月、日...
Java实现按年月打印日历功能是Java语言中一个常见的功能需求,涉及到日期运算和Calendar类的使用。下面将详细介绍Java实现按年月打印日历功能的相关知识点。 Calendar类简介 Calendar类是Java语言中一个用于日期和...
很强大的一段JS 显示 年月日星期 农历 时分秒。比平时只有年月日星期时分秒的多了农历。很强大的一段JS 显示 年月日星期 农历 时分秒。比平时只有年月日星期时分秒的多了农历。
### JavaScript 获取年月日及当月天数 在JavaScript中,日期对象提供了丰富的API来处理时间与日期。本文将详细介绍如何使用JavaScript获取当前日期的年、月、日以及当月的总天数。 #### 一、JavaScript日期对象...
最终与同事一样倒腾出一个来。 js年月控件(无日) 使用了jquery,共3个文件,使用说明内附。 下载地址: http://u.115.com/file/f388284d67 广告一下我的QQ群,谢绝只加群不说话的人加入。 WEB前端群:...
js 实现年月日下拉选择 包括计算闰年 功能比较全,只是下拉条的高度没有控制