2014-01-10 47 views
1

Datepicker是使用jquery onclick激活如下。Datepicker內appendTo()不工作

$(function() { 
      $("#datepicker2").datepicker(); 
     }); 

它在單個文本框內工作。但是當使用appendTo() Datepicker在新的附加文本框內創建多個框不起作用時。

$(document).ready(function(){ 
    var counter2 =2; 
    $("#addButton2").click(function() { 

var newTextBoxDiv2 = $(document.createElement('div')).attr("id", 'TextBoxDiv2' + counter2); 
    newTextBoxDiv2.after().html('<input type="text" id="datepicker'+counter2+'" name="datepicker3" class="input" />'); 

    newTextBoxDiv2.appendTo("#TextBoxesGroup2"); 
    counter2++; 
    }); 
+1

爲什麼會吧,元素不會當實例的日期選擇器存在嗎? – adeneo

+1

你必須初始化插件一旦元素是DOM –

+0

的一部分,你必須在這裏調用counter2 ++; // here});' – Jai

回答

1

存儲輸入到一個新的變量,然後調用datepicker

$(document).ready(function(){ 
    var counter2 =2; 
    $("#addButton2").click(function() { 

     var newTextBoxDiv2 = $(document.createElement('div')).attr("id", 'TextBoxDiv2' + counter2); 
     var datePicker = $("<input/>",{ 
      type: "text", 
      id: "datepicker-" + counter2, 
      name: "datepicker" + counter2 
     }); 
     $(datePicker).datepicker(); 

     newTextBoxDiv2.append(datePicker); 
     newTextBoxDiv2.appendTo("#TextBoxesGroup2"); 
     counter2++; 

    }); 
}); 

JS小提琴:http://jsfiddle.net/Yj3yb/4/


在一個側面說明

jQuery可以爲你創建元素。例如,這樣的:

var newTextBoxDiv2 = $(document.createElement('div')).attr("id", 'TextBoxDiv2' + counter2); 

可以收拾到:

var newTextBoxDiv2 = $("<div/>").attr("id", 'TextBoxDiv2' + counter2);