2016-06-29 6 views

答えて

2

あなたはMonthPicker、ないDatePickerをインスタンス化された新しい日付()
2. ExtJSのに
1.設定maxDateの、まだあなただけある設定オプションの数十を使用している -

fiddleを参照してください。 DatePickerでご利用いただけます。

hereMonthPickerをインスタンス化する方法を参照してください。特にin the docsにあるように、MonthPickerには何も無効にする設定オプションはありません。また、DatePickerの動作を確認すると、disabledDatesオプションは何も変更されません。MonthPickerの後には、月が選択され、DatePickerのすべての日が無効になります。

だから、私はDatePickerMonthPickerからのコードを見て、転送しようとすることで行うことになる、MonthPickerためdisabledDatesを実装するには、あなた自身になります。

0

ExtJS 6.0.0で作業してください。 あなたは'Ext.picker.Month' find attached image 受け入れられる値オーバーライドする必要がある - 新しい正規表現を( '?(:)'); すべての月/年を無効にする new RegExp( '^((?!^ 4月/ 2016 $ |^5月/ 2016 $ |^6月/ 2016 $)^ * $')は2016

CSS - 
.x-monthpicker-disabled { 
background-color: #eee !important; 
cursor: default !important; 
color: #bbb !important; 
} 


disabledCls: Ext.baseCSSPrefix + 'monthpicker-disabled', 
disabledMonthYearsRE: null, 
disabledMonthYearsText: 'Disabled', 

updateBody: function() { 
    //default Extjs code 
    if (me.rendered) { 
     //default Extjs code 
     //remove disabled cls and tooltip 
     years.removeCls(disabledCls); 
     months.set({ 
      'data-qtip': '' 
     }); 
     years.set({ 
      'data-qtip': '' 
     }); 
     months.removeCls(disabledCls); 
     //default Extjs code 
     if (dmyMatch) { 
      if (month == null && year == null) { 
       months.set({ 
        'data-qtip': dmyText 
       }); 
       months.addCls(disabledCls); 
      } 
      yrInView = false; 
      for (y = 0; y < yLen; y++) { 
       yr = yearNumbers[y]; 
       el = Ext.fly(yearItems[y]); 
       if (dmyMatch.toString().indexOf(yr) == -1) { 
        el.dom.setAttribute('data-qtip', dmyText); 
        el.addCls(disabledCls); 
       } 
       if (yr == year) { 
        yrInView = true; 
       } 
      } 
      if (year != null && yrInView) { 
       for (m = 0; m < mLen; m++) { 
        mNo = m; 
        if (mNo < monthOffset) { 
         mNo = mNo * 2; 
        } else { 
         mNo = (mNo - monthOffset) * 2 + 1; 
        } 
        mt = months.elements[mNo]; 
        if (dmyMatch.test(mt.text + "/" + year)) { 
         mt.setAttribute('data-qtip', dmyText); 
         mt.className = disabledCls + ' ' + mt.className; 
        } 
       } 
      } else { 
       //Add tooltip 'disabled' 
       months.set({ 
        'data-qtip': dmyText 
       }); 
       months.addCls(disabledCls); 
      } 
     } 
    } 
}, 
//Disable month and year click for disabled values 
onMonthClick: function (target, isDouble) { 
    var me = this; 
    if (!me.disabled && !Ext.fly(target).hasCls(me.disabledCls)) { 
     //default Extjs code 
    } 
}, 

onYearClick: function (target, isDouble) { 
    var me = this; 
    if (!me.disabled && !Ext.fly(target).hasCls(me.disabledCls)) { 
     //default Extjs code 
    } 
} 
4月/月/ 6月/ 7月以外のすべての値を無効にします
関連する問題