2010-07-01 7 views
2

jquery-ui에서 하나의 날짜 선택 도구로 처음로드되는 양식이 있습니다. 사용자는 추가를 클릭하여 더 많은 날짜를 추가 할 수 있습니다. 이 새로운 날짜 필드는 DOM에 추가해야하지만 분명히 그렇지 않습니다. .live() 또는 .bind()를 사용할 필요가 있거나 사용해야한다는 것을 알고 있지만이 작업을 수행하는 가장 좋은 방법은 약간의 문제가 있습니다. 아래 코드는 내가 가지고있는 코드이다. 어떤 아이디어에 감사드립니다.페이지에 동적으로 여러 개의 jquery 사용자를 추가합니다.

 // 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

답변

3

먼저 addFormField 함수가 실제로 양식에 새 필드를 삽입하는지 확인하십시오. 그런 다음 새 필드에 .datepicker();으로 전화하십시오.

내부 addFormField :

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

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

반복을 방지하기 위해 무언가가 초기화되면 제거되는 템플릿에 특별한 태그를 생성하는 것이 항상 좋은 방법이라고 생각합니다. 예를 들어, 모든 datepicker 입력에는 '.do-datepicker-init'클래스가 있어야하며 코드는 다음을 수행합니다. $ ('. do-datepicker-init'). removeClass ('do-datepicker-init') .datepicker()' – aceofspades

관련 문제