2

没有控制台错误,只是不起作用。

if (typeof (data.maintExpiry) === 'undefined') { 
    data.maintExpiry = '01-01-1970' 
}
if (typeof (data.maintExpiry) === 'undefined') { 
    data.maintExpiry = new Date('01-01-1970') 
} //also doesn't work

someColumn = '<span>test</span>'
maintExpiry = '<div class="input-append date" class="datepicker" data-date="12-02-2012" data-date-format="dd-mm-yyyy">'
maintExpiry += '<input style="display: inline;padding-left: 20px;" size="16" type="text" value="' + data.maintExpiry + '">'
maintExpiry += '<span class="add-on"><i class="icon-th"></i></span></div>'
someOtherColumn = '<span>test2</span>'
...
$('#myReport').dataTable().fnAddData([
    someColumn,
    maintExpiry,
    someOtherColumn
]);

然后在document.ready中:

$('#myReport').dataTable({
    "fnDrawCallback": function (oSettings) {
        $('.datepicker').each(function () {
            $(this).datepicker();
        });
    }
});

我最终将 datepicker() 放在 dataTables 的 fnDrawCallback 函数中的原因是因为我之前遇到过引导弹出框仅适用于第一页上的元素的问题。这确保了每次更改页面时它们都适用于页面上的所有内容。我还尝试了 datepicker() 在此之外没有运气。

我正在执行 each() 函数,因为引导 datepicker 文档显示使用 id 选择器,并且由于这些是动态生成的,我希望我可以通过类来完成。我也简单地尝试过 $('.datepicker').datepicker() 但这也不起作用。

同样,没有控制台错误或任何东西。看起来它应该但在 IE 和 Chrome 中单击时的行为为零。好吧,我可以在输入框中输入...

更新我刚刚意识到我有两次类定义。我合并了这两者,现在我得到一个控制台错误“Uncaught TypeError: Cannot call method 'split' of undefined - bootstrap-datepicker.js:393 Investigating...

更新 2看起来我正在尝试使用无效日期填充该字段。我已经添加了下面的行。如果没有返回日期,有什么想法可以设置默认日期吗?

4

0 回答 0