1

这是烤每个人的面条的东西。我在网站上有一个表格。你可以看看:我的网站. 点击book me,然后在右上角选择一定的天数。使用“-”按钮从表单中手动删除一些表单行。然后尝试使用第一行的第一个输入。它链接到错误的输入。所有输入都有唯一的 ID 属性,我在删除一行后重新绑定 datetimepicker 类。任何人都知道为什么 datetimepicker 指向错误的对象?具有讽刺意味的是,似乎不是来自 jQuery UI 的 timepicker 部分仍然指向正确的输入。似乎当您删除较低编号的行时,较高编号的行会被移动并重命名,但日期时间选择器的日期部分仍指向它最初绑定的行号,如果这有任何意义的话.

感谢您的帮助,因为这让我很困惑。在删除表单行之前,我尝试手动释放 datepicker 对象,但似乎没有任何帮助。

谢谢

编辑:有没有办法在我删除它们之前完全销毁绑定到输入元素的日期选择器实例?

编辑:好吧,我刚刚意识到。我正在删除要删除的行上的日期选择器,但不会破坏剩余的行,因此我将在此工作一分钟,看看在重建表单时是否完全销毁日期选择器有帮助。

4

3 回答 3

1

没有时间分析所有代码,但在重新绑定之前$(elem).datetimepicker('destroy')删除控件时可能有助于调用。

于 2013-02-27T15:19:19.147 回答
1

setAlts()

尝试删除var fields = $('.date').get();

只是在做:

$('.date').each(function() {

    $(this).datetimepicker('destroy'); // From Marcell
    $(this).datetimepicker({
            minDate: now,
            timeFormat: "h:mm tt",
            stepMinute: 15,
        });
});

如果你删除dateCheck()所有应该没问题。

我假设下面是你想要的dateCheck()。好的dateCheck()

改变:

target.siblings('.date').datetimepicker('setDate', dateMin);

到:

target.next('.date').datetimepicker('minDate', dateMin);

于 2013-02-27T15:24:25.323 回答
0

好吧,所以回答这个问题:回想起来似乎很明显,但是 datetimepicker 插件的编码方式略有不同,而且效率可能较低,这让我偏离了轨道。无论如何,我会尽量以清晰的方式解释发生了什么。

datepicker 对象在创建时绑定到元素的 id,并保留该 id 直到它被销毁。显然,如果已经存在一个 datepicker 对象,那么尝试绑定一个新的 datepicker 对象将无济于事。

为了解决这个问题,在 setAlts() 方法中,我简单地销毁了每个 datepicker 对象,然后重新创建了它。很简单,但这让我很困惑。

感谢您让我走上正确的道路。否则我可能会有一个黑猩猩并开始在墙上涂抹我的便便。

于 2013-02-27T15:53:57.177 回答