2013-02-27 103 views
1

这是烤大家的面条的东西。我在网站上有一个表格。你可以看看它:My Website。点击预订我并选择右上角的特定天数。使用' - '按钮从表单中手动删除一些表单行。然后尝试使用第一行的第一个输入。它与错误的输入相关联。所有输入都具有唯一的ID属性,并且在删除行后重新绑定datetimepicker类。任何人都有最模糊的想法,为什么datetimepicker指向错误的对象?具有讽刺意味的是,timepicker部分,不是来自jQuery UI本身,仍然指向正确的输入。看起来,当删除较小数字的行时,较高数字的行将被移动并重命名,但日期时间选择器的日期部分仍然指向最初绑定的行号,如果这样做有任何意义。删除DOM元素后,jQuery UI datetimepicker绑定到错误输入

帮助被赞赏,因为这一个让我难住。我已经尝试手动释放日期选择器对象,然后删除表单行,但似乎没有任何帮助。

感谢

编辑:有没有办法彻底摧毁绑定到输入元素之前,我删除它们的日期选择器的实例?

编辑:好吧,我只是有一个实现。我正在销毁我正在删除的行中的日期选择器,但不是剩下的行,所以我将在此处理一分钟,并查看是否在重建表单时完全破坏日期选择器。

+0

尽管您提供了链接到您的网站,但您需要在您的问题中包含任何相关的代码 - 所以相关的Javascript和HTML会很好 – Ian 2013-02-27 15:06:28

+3

*'这里是烤大家的面条'* - 可能的最佳候选人开始有句话 – George 2013-02-27 15:06:40

+0

你有没有打扰检查浏览器的控制台?我得到2个错误。一个是你的DOCTYPE语法错误...所以我猜这是因为你之前有文本 - HTML注释'<! - php includes - >'(我认为你不可以)。此外,你得到一个关于datetimepicker未被初始化的错误。因此,您需要调试代码以确保在需要时调用所有代码。 – Ian 2013-02-27 15:13:03

回答

0

好了,所以回答这个问题:它似乎在回想明显,但的DateTimePicker插件是以稍微不同的方式进行编码,可能效率较低,这种方式让我不知所措。无论如何,我会尽力以清晰的方式解释发生的事情。

datepicker对象在创建时绑定到元素的id,并保留该id直到它被销毁。显然,如果已经有一个日期选择器对象,试图绑定一个新的日期选择器对象什么也不做。

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

并感谢设置我在正确的道路上。否则,我可能会有一个chimpout,并开始在墙上涂抹我的便便。

1

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

+0

这是我尝试的第一件事情之一,但我再次尝试了很好的措施。问题依然存在。 – spuy767 2013-02-27 15:27:49

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);

+0

对不起,我知道这里有很多丑陋的代码,因为过去三天​​我一直在咖啡因燃烧的愤怒中冲击这件事,但我做了这个改变,问题依然存在。 – spuy767 2013-02-27 15:32:24

+0

虽然确实工作得更好,但现在只有开始日期更改了相应的结束日期,但结束日期与预期相同。看着它.. – Zac 2013-02-27 15:38:00

+0

更新,给它一个测试。 – Zac 2013-02-27 15:49:07