在最近一个项目中用到了Ext,学到了很多新的东西,同时JS水平得到了大大的提升。项目中需要一个年月输入框,不带日期的,可是Ext本身不带这样的功能,没办法只能自己扩展。

G了一下得到:
修改Ext.form.DateField只选择年月

按照他的做法,依葫芦画瓢,做出来了,但是出现了问题。
首先他用的ID识别,这使得在一个页面中如果只有一个这样的控件是有效的,但是多个时,第二个被触发的控件的日期选择还是会显示,因此不能采用ID识别。
琢磨了下,修改Ext.DatePicker,把onRender 下的修改部分改为
  1. if (this.format.indexOf('d') == -1) {
  2.     this.el.select("table.x-date-inner").hide();
  3.     this.el.child("td.x-date-bottom").hide();
  4. }
复制代码
来隐藏日期选择。
同时把update方法修改的部分改为
  1. if (this.format.indexOf('d') == -1 && this.getValue() != date) {
  2.   this.setValue(date);
  3.   this.fireEvent("select", this, this.value);
  4. }
复制代码
来获得选择的年月比较好。

而Ext.form.DateField则不需要做任何修改。
用法如下
  1. var date = new Ext.form.DateField({
  2. ...
  3. format: 'Y年m月',
  4. ...
  5. });
复制代码
其中format也可以为'Ym','m/Y'等之类的只要不带d的都会按照只选择年月去执行。
my girl friend cheated on me married woman wants cheat men who have affairs
TOP

请问下,我在onRender方法最后,加的
  1. if (this.format.indexOf('d') == -1) {
  2. this.el.select("table.x-date-inner").hide();
  3. this.el.child("td.x-date-bottom").hide();
  4. }
复制代码
但这样在选择时,原来日期选择的地方就会空出一块来,这样影响美观,
我想把这块空的去掉
  1. this.el.select("table.x-date-inner").remove();
  2. this.el.child("td.x-date-bottom").remove();
复制代码
但这样问题又来了,在IE里选择年月的DIV显示不完,只能看到上面一点点内容,在FF里还可以显示完全,但背景透明的,不好看(这个透明我搞定了)

我想问问,有没有什么办法让选择年月的DIV在IE里显示完全?
谢谢!
TOP

你说的办法,我开始也尝试过,也是这个问题.
最好的办法是能在按下日期选择的时候,就能把年月拉下来.
why does husbands cheat go why husband cheat on their wife
TOP

这个办法我试过,结果是第一次能自动把年月拉下来,第二次就不得行了。
而且拉下来时有点卡(不知道程序问题,还是我机子问题)。
我当时的实现方法,周一回公司我贴上来,一起研究下。
TOP

我在很DatePicker的一些函数里,添加了,想让它自动把年月选择弹出来,
结果是在第一次能点击时能出来,后面就不行了.
  1. if (this.format.indexOf('d') == -1 ) { 
  2. this.showMonthPicker(); 
  3. }
复制代码
my husband almost cheated on me thesailersweb.com why men have affairs
my girl friend cheated on me married woman wants cheat men who have affairs
TOP

  1. if (this.format.indexOf('d') == -1 ) { 
  2. this.showMonthPicker(); 
  3. }
复制代码
我用这个方法后,显示的还是原来的日期,不管第一次还是第2次。
my husband almost cheated on me meet and cheat why men have affairs
TOP

还有个问题,我点了 输入框后,出现带了月份,这个时候默认显示的当前月份,但是无法让值直接到输入框中。
再次点击月份后,出现月份输入框,再次选择当前月份后,点确定,无效,输入框内还是没有值
只有先选其他月份后,再选回去,才能出现。。。
TOP

以前没发现这个BUG,
在onMonthClick方法中的button.x-date-mp-ok后加上下面的代码可以解决
  1. //Butnet Add 
  2. if (this.format.indexOf('d') == -1 ) {// 
  3. this.setValue(d); 
  4. this.fireEvent("select", this, this.value); 

  5. //Butnet Add End
复制代码
cheat on your wife website link cheat on your wife website
all wife cheat site how to catch a cheater
TOP

发现按这种方式有问题,在年月选择区域下面会有一块空白区域,没办法,重新修改了一些代码,采用自动弹出年月选择区的方式,很好的解决了这个问题。我把代码放在附件里面,有兴趣的可以下载:
what causes women to cheat boomasontennis.com husband watches wife cheat
附件: 亲,您没有权限下载或查看附件喔:-) 试试登录注册吧!
TOP