1

日付ピッカー付きのテキストボックスがあります。私の要件に応じて、ユーザーはその月の第1火曜日または第2火曜日のいずれかを選択する必要があります。したがって、次のコードを使用して残りの日付を無効にし、正常に機能しました。

var dates_allowed = {
      '2012-07-24': 1,
      '2012-08-14': 1,
      '2012-08-21': 1,
      '2012-09-11': 1,
  '2012-09-18': 1,
      '2012-10-09': 1,
      '2012-10-16': 1
};
$("#" + webinarDate.id).datepicker({
    // called for every date before it is displayed
    beforeShowDay: function(date) {

        // prepend values lower than 10 with 0
        function addZero(no) {
            if (no < 10){
              return "0" + no;
            }  else {
              return no; 
            }
        }

        var date_str = [
            addZero(date.getFullYear()),
            addZero(date.getMonth() + 1),
            addZero(date.getDate())      
        ].join('-');

        if (dates_allowed[date_str]) {
            return [true, 'good_date', 'This date is selectable'];
        } else {
            return [false, 'bad_date', 'This date is NOT selectable'];
        }
    }
});

しかし、問題は、ユーザーが日付ピッカーを使用する代わりにテキストボックスに日付を入力できることです(私はそれを望んでいません)。手動で入力する代わりに、ユーザーが日付ピッカーから日付を選択するように制限する方法。ご理解頂けるとありがたいです..

4

4 に答える 4

2

これですか?

以下を使用して、日付ピッカーの入力テキストを読み取り専用に設定できます。

あなたの場合はこの要素になります:$("#" + webinarDate.id)


<input type='text' id='datepickerTxt' readonly='true'>

または:

$("#datepickerTxt").attr('readonly', 'true');

または:

$("#datepickerTxt").keypress(function(e){ e.preventDefault(); });

最新のjQueryバージョンでは:

$("#datepickerTxt").prop('readonly', 'true');
于 2012-07-24T15:33:34.467 に答える
0

日付ピッカーはここで正しい解決策ですか?次のロットの日付を選択できるドロップダウンリストのように感じます。

必要に応じて、onblurを使用して入力するユーザーをターゲットにして、テストを行うことができます。

または、onfocusがトリガーされた場合は、キーボード入力を無効にします。

于 2012-07-24T15:33:28.237 に答える
0

私はこの答えを見るでしょう: テキスト入力が読み取り専用であるjQuery日付ピッカー onclickイベントを追加し、入力を無効にします

于 2012-07-24T15:36:05.523 に答える
0

ASPXの場合-AJAXCalenderExtenderをドラッグアンドドロップし、ControlToValidateをtxt_Date(日付テキストボックス)のIDに変更し、EnableClientScriptをFalseに変更します

それで

TextBoxプロパティで、読み取り専用プロパティをTRUEに変更するだけです。

(エクステンダーが機能するようにScriptManagerを既にドラッグしていることを確認してください)...

カレンダーエクステンダーを使用してのみ日付を変更できるようになったため、無効な日付を入力できませんでした。

于 2012-10-21T08:01:31.187 に答える