2012-04-13 13 views
0

メニューボタンを持つメインページが1つあります。クリックすると、AJAXでメインの「コンテンツ」領域が変更されます。このページのヘッダーには、適切なDojo参照がすべてあります。
AJAXで電話をかける前に正常に表示されているため、Dojo Dijit TimeTextBoxが正常に表示されたため、AJAXが正常に表示され、コンテンツ領域にデータが表示されています。Dojo Dijit TimeTextBoxがAJAXでページにプルされても機能しない

TimeTextBoxウィジェットの新しい入力フィールドをAJAXで呼び出しようとすると、通常のテキストボックスとしてしか表示されず、TimeTextBoxに設定されているという事実は無視されるようです。

誰でもこの問題を解決する方法を教えてもらえますか?

EDIT:

<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
    <title>Admin Page</title> 
    <link rel="stylesheet" type="text/css" href="styles/adminPage.css" /> 
    <link rel="stylesheet" type="text/css" href="styles/adminStyle.css" /> 
    <link rel="stylesheet" type="text/css" href="http://ajax.googleapis.com/ajax/libs/dojo/1.6.1/dojo/resources/dojo.css"> 
    <link rel="stylesheet" type="text/css" href="http://ajax.googleapis.com/ajax/libs/dojo/1.6.1/dijit/themes/claro/claro.css"> 
    <script 
      type="text/javascript" 
      src="http://ajax.googleapis.com/ajax/libs/dojo/1.7.2/dojo/dojo.js" 
      djConfig="parseOnLoad:true"></script> 
    <script type="text/javascript"> 
     dojo.require("dojo.parser"); 
     dojo.require("dijit.form.Button"); 
     dojo.require("dijit.form.TimeTextBox"); 
    </script> 

    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script> 
    <script type="text/javascript"> 
     require(["dojo/ready", "dijit/form/TimeTextBox"], 
     function(ready, TimeTextBox){ 
      ready(function(){ 
       new TimeTextBox({name: "timeInput", value: new Date(), 
        constraints: { 
         timePattern: 'HH:mm:ss', 
         clickableIncrement: 'T00:15:00', 
         visibleIncrement: 'T00:15:00', 
         visibleRange: 'T01:00:00' 
        } 
       }, "timeInput"); 
      }); 
     }); 

     function getPage(page) 
     { 
    $.ajax({ 
     url: "admin"+page+".php", 
     type: "POST", 
     cache: false, 
     success: function (html) {    
      $('#content').html(html); 
          $('#content').fadeIn('slow'); 
          } 
    }); 

     } 
    </script> 

</head> 
<body class="claro"> 
    <div id="container"> 
     <div id="header"> 
      <span class="headerTitle">Lehman Nursery</span> 
     </div> 
     <div id="content"> 
      <input type='text' name='date1' id='time1' value='T15:00:00' 
    data-dojo-type='dijit.form.TimeTextBox' 
    required='true' /> 
     </div> 
     <div id="menu"> 
      <a onclick="getPage('Home')"> 
       <div id="homeButton" class="menuAppearance"> 
        <img src="images/icons/home.png"/><br /> 
       </div> 
      </a> 
      <a onclick="getPage('Links')"> 
       <div class="button menuAppearance"> 
        <div class="menuTitle"><img src="images/icons/links.png"/><br />Links</div> 
        <div class="description"> 

        </div> 
       </div> 
      </a> 
      <a onclick="getPage('Hours')"> 
       <div class="button menuAppearance"> 
        <div class="menuTitle"><img src="images/icons/pictures.png"/><br />Pictures</div> 
        <div class="description"> 

        </div> 
       </div> 
      </a> 
      <a onclick=getPage('Events')> 
       <div class="button menuAppearance"> 
        <div class="menuTitle"><img src="images/icons/events.png"/><br />Events</div> 
        <div class="description"> 

        </div> 
       </div> 
      </a> 
      <a onclick=getPage('Feedback')> 
       <div class="button menuAppearance"> 
        <div class="menuTitle"><img src="images/icons/feedback.png"/><br />Feedback</div> 
        <div class="description"> 

        </div> 
       </div> 
      </a> 
     </div> 
    </div> 
</body> 

<form> 
    <input type="text" name="date1" id="time1" value="T15:00:00" 
    data-dojo-type="dijit/form/TimeTextBox" 
    onChange="require(['dojo/dom'], function(dom){dom.byId('val').value=dom.byId('time1').value.toString().replace(/.*1970\s(\S+).*/,'T$1')})" 
    required="true" /></form> 

^^

+0

コードを共有できますか? – 0xc0de

+0

コードはウェブサイトに保存されましたか?はいの場合は、私にリンクを教えてもらえますか? – OammieR

答えて

0

に引っ張られているデータは、これらのdijitのためのCSSファイルがプルアップされている: ここにコードがありますか?最初に(ページが読み込まれるときに)requireにキャッシュされ、dijitがAJAX経由でプルされたときに使用されます。

編集:あなたが作成したウィジェットをstartup()に追加するようにお勧めします。

+0

彼らは、あなたが見ることができるようにコードを追加しました – mb595x

+0

私はそれについてどのように正確に行くでしょうか? – mb595x

0

あなたが呼び出すためにforgoettingされているようにそれは私にapears:

dojo.parser.parse(); 

をコンテンツIあなたのAJAX呼び出しを設定した後。あなたはdojo.parser.parseを呼び出すmoustのdijitを追加するように、コンテンツの変更を

function getPage(page) 
{ 
$.ajax({ 
    url: "admin"+page+".php", 
    type: "POST", 
    cache: false, 
    success: function (html) {    
     $('#content').html(html); 
     dojo.parser.parse(); 
     $('#content').fadeIn('slow'); 
    } 
}); 
} 

を道場パーサは、それ自体で実行されません、あまりにもそれを行うために高価なresoursesされるので、各時間:それは次のようになります。 ();

+0

私はそれを追加し、それは動作しませんでしたが、私はあなたが正しい軌道にいると信じています。パーサーを使用することは可能ですか?AJAXでコンテンツをロードするのですか?ページが最初に読み込まれるときではなく、 – mb595x

+0

はい、私はあなたがそれを使用してコンテンツをAJAXでロードした後に使用することになっています。まあ、jqueryが "$( '#content')をどのように処理するのかはよくありません。しかし、あなたはHTMLコンテンツが設定された後に解析するべきです() –

関連する問題