EasyUI的DateBox只能选择月份的方法,亲测有效

网上能查到的方法抄来抄去基本都是一样的,然而并不能用,我参考了网上的方法,发现网上的代码不能用的原因在于有一个元素查询错了,导致后面的代码都失效了。

如果还需要其他扩展,可以参考文章最后的html源代码。

 

修改后的代码如下:




对于该方法的说明如下:

1,这个方法最基本的套路是,弹出日期窗口之后触发点击窗口标题的月份栏,弹出的就是月份窗口。EasyUI默认的月份窗口选择月份后回返回该月的日期窗口,把这个操作取消掉,然后把月份显示在输入框,就完成了。

2,变量p就是最初的日期选择框

EasyUI的DateBox只能选择月份的方法,亲测有效_第1张图片

3,变量span是日期选择框最上面显示年月的部分,网上的代码就是把这个元素取错了,网上往往写的是

span = p.find('span.calendar-text');

我不知道这个span.calendar-text是哪来的,可能EasyUI的版本不一样吧,我用的1.3.5。

EasyUI的DateBox只能选择月份的方法,亲测有效_第2张图片

4,触发点击年月的操作后,月份弹窗的html代码是临时生成的,所以需要setTimeout来延时获取后面的内容。

5,变量tds是点击年月之后弹出的月份选择框中的月份按钮,实际上div.calendar-menu-month-inner包含了一个table,而那些月份按钮就是这个table中的td单元格。

EasyUI的DateBox只能选择月份的方法,亲测有效_第3张图片

6,e.stopPropagation()的作用是防止点击月份之后时间传给上级DOM,但是没有看出来有什么必要。

7,td有abbr属性,里面记录的是月份按钮的实际月份数,从1到12,不会默认补0,代码里面我自己补了0。


相关控件的html源代码

1,p(日期选择框)的html源代码

  
二月 2018
28 29 30 31 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 1 2 3
4 5 6 7 8 9 10

2,月份选择框的html源代码
  
一月 二月 三月 四月
五月 六月 七月 八月
九月 十月 十一月 十二月


你可能感兴趣的:(框架)