2

我正在向动态生成的字段添加日期选择器。

('#addScnt1').live('click', function() {
$('<p class="textocampodetexto" style="margin-left:20px; margin-top:20px;"> 
<label for="p_scnts1">  <input id="au_fechainicioperiodo2" 
name="au_fechainicioperiodo2" type="text" size="7"  
value="" /> </p>').appendTo(scntDiv);

当我单击“添加字段”按钮时,会添加这些字段。

当我单击生成的字段时,日期选择器不会出现。我知道 datepicker 正在工作,因为我将代码放在 javascript 代码之外并且它可以工作。

那我该如何实现呢?

4

3 回答 3

2

您将不得不将日期选择器重新附加到您的输入字段。

试试这里找到的解决方案:Why do jQuery UI's datepicker break with a dynamic DOM?

该代码与您的代码不同,但如果您可以从选择器中提取输入字段,您就可以做到。

于 2012-04-17T19:18:21.307 回答
1

您的代码应该像这样工作(LIVE DEMO):

$(function () 
{
  $('#addScnt1').click(function() {

    $('<p class="textocampodetexto" style="margin-left:20px; margin-top:20px;"><label for="p_scnts1">  <input id="au_fechainicioperiodo2" name="au_fechainicioperiodo2" type="text" size="7" value="" /> </p>').appendTo(scntDiv);
    $('#au_fechainicioperiodo2').datepicker(
    {
        showOn: "both",
        dateFormat: "dd M yy",
        firstDay: 1, 
        changeFirstDay: false
    });
  });
});

注意:我假设该变量scntDiv是在此调用之前使用 DOM 对象定义的)

于 2012-04-17T19:26:18.930 回答
0
$('#addScnt1').live('click', function() {
    var newElement = $('all your html'); //then append it wherever

    newElement.find('.input-selector').datepicker();
});
于 2012-04-17T19:18:41.840 回答