2011-08-16 130 views
1

嘿傢伙我有兩個divs與id =「form1」這是內聯,另一個id =「form2」,它通過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' }); 
}); 

現在,我已經申請的日期選擇器ID在Form1中的一個字段,它完美的作品。 問題出現在第二種形式。第二種形式得到由環產生的,我已經採用以下邏輯來應用ID DATEPICKER1到IT-

<? 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; ?> 

現在,ID DATEPICKER1是越來越完全施加到所需的字段,但jquery的日期選擇器彈出不來如預期的那樣。

什麼是解決方案?

+2

出於好奇,你爲什麼要使用一個div作爲表單元素的包裝(

是好的)? –

+0

它只是因爲一定的結構問題。無論如何,我沒有使用任何形式的屬性,所以它沒有關係。 – digster

+0

您的循環是否會使用'id =「datepicker1」'生成多個輸入? –

回答

1
​​
+0

thx .. tht幫助..;)...只是添加了一個普通的類而不是id ... – digster

1

ID =「窗口2」,它通過Ajax

那麼獲取其內容,有你的問題:)

的JavaScript代碼添加日期選擇器功能之前,AJAX事件可能是執行完了。加載內容後,嘗試加載第二個表單的日期選擇器。

+2

例如,在您的'jQuery.ajax'的回調。 – wanovak

+0

nope,沒有幫助...如果它有任何幫助,我使用ui對話框的form2(它會被點擊編輯按鈕時調用)。該網站編碼codeigniter ... form2循環是在不同的視圖文件.. – digster

0

當dom第一次加載時,jquery函數只運行一次。它在加載ajax內容時不會反射。解決這個問題的最好方法是使用附加到父元素的jquery委託函數。只需給你想要的日期選擇器的輸入'datepicker'的類(或一些其他方式來選擇它們)。像這樣的東西。

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

我假設'parentID'是這兩種形式的某些父元素的ID。

+0

我相信它會工作得太...只是,我不想指定一個共同的parentid .... – digster