2010-07-01 60 views
2

我有一個表單,最初加載jquery-UI中的一個日期選擇器。用戶然後可以點擊添加以添加更多日期。這些新的日期字段應附加到DOM,但顯然不。我知道我需要或應該使用.live()或.bind(),但我在做最好的方法遇到了一些麻煩。以下是我的代碼。謝謝你的任何想法。動態地添加多個jQuery UI的日期選擇器到頁面

 // add a formfield 
    function addFormField() { 
     var id = document.getElementById("DateID").value;      

     // add date form to page 
     $("td#dateDiv").append("<p id='row" + id + "'> Calendar Dates " + id + " <br> <input type='text' size='20' class='hasDatepicker' name='inputDate[]' id='inputDate" + id + "'>&nbsp;&nbsp<a href='#' onClick='removeFormField(\"#row" + id + "\"); return false;'>Remove</a><p>"); 

     $('#row' + id).highlightFade({ 
      speed:1000 
     }); 

     id=(id-1) + 2; 
     document.getElementById("DateID").value = id; 
    } 

    function removeFormField(id) { 
     $(id).remove(); 
    }  

    $("#addDate").live("click", function(){ 
      addFormField(); 
    }); 
+0

您可能需要更具體的,什麼是不工作。 – aceofspades 2010-07-01 18:48:44

回答

3

首先確保您的addFormField函數實際上是將新字段插入到窗體中。然後在任何新字段上撥打.datepicker();

內addFormField:

$("td#dateDiv").append(... 

$("td#dateDiv").find(".hasDatepicker").datepicker(); 
+1

我認爲在模板中生成一個特殊的標籤總是好的,一旦初始化了一些東西以防止重複就會被移除。例如,所有的日期選擇器輸入都應該有'.do-datepicker-init'類,代碼會這樣做: '$('.do-datepicker-init')。removeClass('do-datepicker-init') .datepicker()' – aceofspades 2010-07-01 23:50:23