easyui datebox 只选择年月

如题,要网上还是找了好大一阵才打到一个前辈的解决方法,但还有一点bug,固在这儿贴出来,希望能帮到更多的小伙伴!

$(‘#dlgReleaseTime‘).datebox({

onShowPanel: function () {//显示日趋选择对象后再触发弹出月份层的事件,初始化时没有生成月份层

span.trigger(‘click‘); //触发click事件弹出月份层

if (!tds)

setTimeout(function() { //延时触发获取月份对象,因为上面的事件触发和对象生成有时间间隔

tds = p.find(‘div.calendar-menu-month-inner td‘);

tds.click(function(e) {

e.stopPropagation(); //禁止冒泡执行easyui给月份绑定的事件

var year = /\d{4}/.exec(span.html())[0] //得到年份

,month = parseInt($(this).attr(‘abbr‘), 10); //月份 之前是这样的month = parseInt($(this).attr(‘abbr‘), 10) + 1;

$(‘#dlgReleaseTime‘).datebox(‘hidePanel‘) //隐藏日期对象

.datebox(‘setValue‘, year + ‘-‘ + month); //设置日期的值

});

}, 0);

},

parser: function (s) {//配置parser,返回选择的日期

if (!s) return new Date();

var arr = s.split(‘-‘);

return new Date(parseInt(arr[0], 10), parseInt(arr[1], 10) - 1, 1);

},

formatter: function (d) { return d.getFullYear() + ‘-‘ +(d.getMonth()+1); }//配置formatter,只返回年月 之前是这样的d.getFullYear() + ‘-‘ +(d.getMonth());

});

var p = $(‘#dlgReleaseTime‘).datebox(‘panel‘), //日期选择对象

tds = false, //日期选择对象中月份

span = p.find(‘span.calendar-text‘); //显示月份层的触发控件

var curr_time = new Date();

$("#dlgReleaseTime").datebox("setValue", myformatter(curr_time));//设置前当月

//格式化日期

function myformatter(date) {

  var y = date.getFullYear();

  var m = date.getMonth() + 1;

  //var d = 1;

  return y + ‘-‘ + (m < 10 ? (‘0‘ + m) : m);//+ ‘-‘ + (d < 10 ? (‘0‘ + d) : d);

}

<input id="dlgReleaseTime" class="easyui-datebox" ></input>

效果图如上

之前如果选择十二月 就会变成 "2015-0",

解决 一个问题,getMonth函数从0-11月!之前那种解决方式有点问题!

时间: 2024-10-11 20:58:11

easyui datebox 只选择年月的相关文章

easyui datebox 只显示年月

在网上看了好多的js源码 点击12月份都会变成2017-0 这样的 调试后发现了问题,在此发修改后的方法 //只显示年月 function convertDatebox(domId) { $("#" + domId).datebox({ onShowPanel: function () {//显示日趋选择对象后再触发弹出月份层的事件,初始化时没有生成月份层 span.trigger('click'); //触发click事件弹出月份层 if (!tds) setTimeout(func

easyui datebox只显示年月隐藏日期的实现

工作中两次遇到需要实现只实现年月的时间控件效果,特地把网上查到的实现方法记录下来,以备再次需要时用到.上代码 var dateobj=function(obj){ var need_obj={ onShowPanel: function () {//显示日趋选择对象后再触发弹出月份层的事件,初始化时没有生成月份层 span.trigger('click'); //触发click事件弹出月份层 if (!tds) setTimeout(function () {//延时触发获取月份对象,因为上面的

easyui datebox 只选择月份的方法

效果如下图: 代码如下: <html > <head> <meta charset="utf-8"> <title>ECharts · Example</title> <link href="../easyui/themes/default/easyui.css" rel="stylesheet" type="text/css" /> <link h

Android DatePickerDialog 只选择年月

//对EditText注册OnTouch事件etSscxNssbDate.setOnTouchListener(selectDateTouchListener); //选择日期 private OnTouchListener selectDateTouchListener = new OnTouchListener(){ @Override public boolean onTouch(View v, MotionEvent event) { if(event.getAction()==Moti

easyui时间框只选择年月

html: <input type="text" id="datetime" > js: <script type="text/javascript"> $(function() { $('#date').datebox({ onShowPanel : function() {// 显示日趋选择对象后再触发弹出月份层的事件,初始化时没有生成月份层 span.trigger('click'); // 触发click事件弹出月

easyui的datebox只显示年月

要求点击easyui的datebox时只显示年月,隐藏日,之前百度了好多,发现有的好麻烦,有的使用没效果,也许自己没理解,改不了.最后老员工帮我搞定了,添加一个fomatter和一个parser函数就行. 当然我学习到的一点就是调试,之前只会用类似alert和console.info进行调试,然而这两种方法对easyui中的这种方法不奏效,比我我想知道parser中的function中的参数date值到底是什么,用这两种方法是没用的,用console.log(date);就可以看到date的值,

EasyUI Combotree只选择叶子节点

EasyUI Combotree的方法拓展自Combo和Tree.而Tree有一个onBeforSelect事件来帮助我们实现只选择叶子节点的功能. Tree事件需要 'node' 参数,它包括下列属性: id:绑定到节点的标识值. text:要显示的文本. iconCls:用来显示图标的 css class. checked:节点是否被选中. state:节点状态,'open' 或 'closed'. attributes:绑定到节点的自定义属性. target:目标的 DOM 对象. onB

重写DEV的DateEdit控件的类只选择年月

最新在做CRM的报表,查询条件只需要年月,DateEdit 以及几个时间控件都用的不顺,强迫症犯了一怒之下起了重写DateEdit的想法 新建一个类 CXDateEdit using DevExpress.XtraEditors; using DevExpress.XtraEditors.Calendar; using DevExpress.XtraEditors.Controls; using DevExpress.XtraEditors.Popup; using DevExpress.Xtr

easyui datebox 扩展 只显示年月

一个日期控件只显示年月是很正常的事情.可是easyui datebox 不支持这种格式的,要么就是截取字符串,不可取,自己没有写过类似的扩展,但是也算是实现功能了,先来张图吧 本人水平有限写不出高深的东西,代码大家都能看懂,但是还是贡献出来,让大家提提意见共同进步吧 $.extend($.fn.combobox.methods, { yearandmonth: function (jq) { return jq.each(function () { var obj = $(this).combo