2011-08-16 20 views
1

私は2つのdivs- withインラインとid = "form2"のid = "form1"を持ち、その内容をajaxで取得します(divタグは同じページに記述されています) )。jquery-ui datepickerの問題

<div id="form1"> 
. 
.form content 
. 
. 
</div> 
<div id="form2"> //gets content dynamically 

は今、私は

$(function() { 
    $("#datepicker,#datepicker1").datepicker({ dateFormat: 'yy-mm-dd' }); 
}); 

コード - 次日付ピッカーを使用している、私はをForm1のフィールドにDatePickerのIDを適用してきたし、それが完璧に動作します。 問題は2番目の形式です。二番目の形式は、ループによって生成されますし、私は今、IDのdatepicker1が必須フィールドに完全に適用されつつある

<? foreach ($list as $key => $value): ?> 
    <? $dt=''; 
    if($key=='date_of_purchase'){ 

     $dt="datepicker1"; 
    }?> 
     <tr><td><?= $key ?> :</td><td><input id="<?=$dt;?>" type="text" name='<?= $key ?>' size="25" value='<?php echo $value; ?>'/></td></tr> 
    <? endforeach; ?> 

をIT-にID datepicker1を適用するには、次のロジックを使用していたが、jqueryのDatePickerのポップアップが来ていません期待どおりの

解決策は何ですか?

+2

なぜ、divをフォーム要素のラッパーとして使用していますか(

はいいですか)。 –

+0

その構造上の問題があるからです。とにかく、私はフォームの属性を使用していないので、重要ではありません。 – digster

+0

ループは 'id =" datepicker1 "で複数の入力を生成しますか? –

答えて

1
​​
+0

thx .. tht助けられた..;)...ちょうどidの代わりに共通のクラスを追加... – digster

1
アヤックス

を通じてコン​​テンツを取得する

ID = "Form2が" まあ、あなたの問題はあります:)

AJAXイベントである前に、DatePickerの機能を追加するJavaScriptコードはおそらく実行されます終了しました。コンテンツが読み込まれた後、2番目のフォームのdatepickerを読み込んで読み込みます。

+2

たとえば、 'jQuery.ajax'のコールバックにあります。 – wanovak

+0

これは助けにならなかった...助けがあれば、編集ボタンをクリックすると呼び出されるform2のUIダイアログを使用しています。このサイトはcodeigniterでコード化されています... form2ループは別のビューファイルにあります。 – digster

0

domの最初の読み込み時にjquery関数が1回だけ実行されます。あなたがajaxコンテンツをロードするときには、それは気にしません。これを修正する最善の方法は、親要素に添付されたjqueryデリゲート関数を使用することです。あなたはdatepickerを持っている入力を 'datepicker'のクラス(またはそれ以外の方法で選択する)だけ与えてください。このようなもの。

$('#parentID').delegate('.datepicker', 'focus', function() { 
    $(this).datepicker({ dateFormat: 'yy-mm-dd' }); 
}); 

私は 'parentID'が両方のフォームのいくつかの親要素のIDであると仮定しています。

+0

私はそれがうまくいったと確信しています...私は共通の親子を指定したくありませんでした.... – digster