2011-12-04 9 views
2

私のテキストボックス入力を指定するカレンダーだけを持ち、dijit.form.DateTextBox内のカレンダーのテキストボックスにキーボードでパンチした数字を許可しません。それを行う方法はありますか?dijit.form.DateTextBoxで手動入力を無効にする

ありがとうございました。

+0

答えがあなたの問題を解決してくれませんでしたか? – Philippe

答えて

2

は、私が実際に何か他のものを使用して終了ここに私のソリューションです:私は必要な要素を設定することにより

dojo.addOnLoad(function() { 
      dojo.query(".dijitDateTextBox input[role='textbox']").forEach(function (node, index, arr) { 
       node.setAttribute('readonly', 'readonly'); 
      }); 

     }); 

に「読み取り専用」、私は望ましい効果を得ます。ページの読み込み時にこれを実行しますが、オーバーヘッドについてはわかりませんが、主な点は動作します。ウィジェットの起動時に

//to disable input from user at the textbox.s 
         startup:function(){ 
          this.inherited(arguments); 
          dojo.connect(this, "onKeyPress", function(evt){ 
           dojo.stopEvent(evt); 
          }); 

         }, 

:あなたが追加することができ、拡張ウィジェット内MrZombieから答えを更新

0

あなたの入力に無効なパラメータを追加することができます。

 
<input type="text" name="startDate" dojoType="dijit.form.DateTextBox" 
    constraints="{datePattern:'MM/dd/yyyy'}" 
    value='' disabled 
    validate='return true;' 
/> 

は、それが

4

@Sudhirを役に立てば幸い:あなたは無効にウィジェットを設定している場合、あなたはどちらかのカレンダーの日付を選択することはできません。

これを試してください: -

dojo.ready(function(){ 
    dojo.connect(dijit.byId("yourcalendarid"), "onKeyPress", function(evt){ 
     dojo.stopEvent(evt); 
    });    
}); 
+0

+1素晴らしい!シンプルで効果的なソリューション。 – MockerTim

6

以下のコードは、DateTextBoxが読み取り専用にするために使用することができます。

<input data-dojo-type="dijit/form/DateTextBox" 
     data-dojo-id="effectiveDate" 
     type="text" 
     name="effectiveDate" 
     id="effectiveDate" 
     data-dojo-props="'readonly': 'readonly'"/> 
0

あなたは道場の日付入力要素を無効にするために使用できる2つのオプションがあります。

コード

1)setDisabled(true)方法

dijit.byId('id').setDisabled(true); 

又は

2を使用)を直接disableプロパティを設定します。 (両方の要素を無効にする必要があります)

dijit.byId(id).disabled = true; 
dijit.byId(id).textbox.disabled = true; 
関連する問題