1

我正在通过 AJAX 调用将内容加载到动态添加到 DOM 的表行中。我在回调函数中调用 datepicker 功能,日历显示正常。但是,当我单击日期时,出现错误:inst 为空。这是我的代码:

$(document).ready(function() {
    $(".edit").live("click", function() {
        //Delete previously loaded edit row
        $("#tempEditRow").remove();

        //Get the record id of the row to be edited
        var recordID = $(this).parent("td").parent("tr").attr("id");

        //Add the new row to the document
        $(this).parent("td").parent("tr").after("<tr id=\"tempEditRow\"><td id=\"tempEditCell\" colspan=\"100\"></td></tr>")

        //Get a reference to the new row
        var container = $("#tempEditCell");

        //Populate the container
        populateContainer("/wpm/includes/ajax_editApplication.cfm?id=" + recordID, container);
    });
});

function populateContainer(ajaxUrl, container) {
    //Populate the container
    $.ajax({
        url: ajaxUrl,
        cache: false,
        success: function(html){
            $(container).html(html);
            $('.datepicker').datepicker();
        }
    }); 
}

我尝试删除 hasDatepicker 类,删除对 datepicker 的任何引用等,但没有任何效果。提前感谢您的帮助!

4

2 回答 2

5

我遇到了同样的错误,这是因为我有两个具有相同 ID 的日期选择器输入字段,一个在运行时设置,另一个通过 ajax 设置。给他们一个唯一的ID,一切都奏效了

于 2010-04-22T10:18:47.030 回答
0

尝试调用 datepicker('destroy') 作为清除前一行的一部分(在您的 remove() 调用之前执行此操作)。

$("#tempEditRow .datepicker").datepicker('destroy');
$("#tempEditRow").remove();
于 2010-03-25T00:15:31.000 回答