删除动态输入字段后,Datetimepicker未正确调用/绑定

6
我正在使用以下版本的jquery datetimepicker。
JQuery v1.7.2
JQuery UI - v1.10.3
jQuery timepicker addon V1.3

在一个模块中,我通过点击"+"动态创建输入字段,并为那些动态创建的输入字段绑定日期时间选择器,同时通过点击"-"来删除该输入字段。
我的动态输入字段始终如下所示:
datepickerfrom_1_1
datepickerfrom_1_2
datepickerfrom_1_3
datepickerfrom_1_4
datepickerfrom_1_5
.
.
.

我正在使用jQuery绑定datetimepicker,代码如下:
$(window).load(function() {
    $('body').on('focus', 'input[id^="datepickerfrom"]', function() { // Id's Containing "datepickerfrom" string, bind the datetimepicker
        $(this).datetimepicker({
            dateFormat: 'yy-mm-dd',
            timeFormat: 'HH:mm:ss'
        });
    });
}); 

script(datetimepicker) 在创建动态输入时正常工作。

问题: 我通过点击"+"添加了一些动态输入字段,然后通过点击"-"删除了其中的一些输入字段,再次添加一些动态输入字段。第二次创建的输入字段不能正确地调用/绑定datetimepicker。

可能是什么问题? 我该如何解决?


1
尝试使用Live方法代替on - Sanjeev Rai
2个回答

1
我认为问题在于'on'函数中的jquery上下文。在jquery.on函数中,您使用$(this)。 $(this)将引用您的主要选择器:$('body')。
您尝试过吗:
$('input[id^="datepickerfrom"]').on('focus', function() {

示例展示了您需要一个输入字段。因此,我假设$('input[id^="datepickerfrom"]')是您的输入字段。


1
文件按照相同的顺序给出:JQuery v1.7.2、JQuery UI - v1.10.3、jQuery timepicker addon V1.3。我已经添加了CSS,但问题仍然存在。我没有添加Smooth.Js,因为如果我包含它,其他js会显示错误。 - DonOfDen

1
我刚在jsfiddle上尝试了一下,它可以正常工作,这是链接: http://jsfiddle.net/juTRR/ 如果你知道自己的问题,请在jsfiddle中重现它,这样我们就可以看到它是什么,因为我没有看到它。也许尝试使用$(document).ready而不是$(window).load,这是我改变的唯一一件事。或者问题实际上在于你的添加和删除函数,如果是这样,你应该将它们放在你的帖子中。

1
代码不起作用!它应该怎么工作...如您所见,如果我们删除一些文本框,下一个ID就会增加...第一个文本框是datefrom_1_1,第二个是datefrom_1_2,如果我删除并添加,则ID为datefrom_1_3而不是datefrom_1_2。我再次将ID更改为datefrom_1_2,因此它无法正常工作。 - DonOfDen
2
我已经修改了它,使其按照您的要求工作,它仍然像往常一样工作。http://jsfiddle.net/ZCNMs/ - Samuel R
谢谢,但是当我使用时,我遇到了同样的问题。这是由于 JQuery 版本引起的吗? - DonOfDen
2
“面对相同的问题”是什么意思?你是指jsfiddle吗?jsfiddle应该对每个人都起作用,这就是为什么我们使用它的原因。无论我在其中删除或添加多少内容,当我单击输入时datetimepicker仍然会打开。您还可以在左侧看到我使用的Jquery版本,与您的版本相同。 - Samuel R
2
我也在使用Chrome,它可以正常工作,我不知道为什么你这边不能工作。我不想太多修改你的代码,但如果它不能工作,你可以尝试这个:http://jsfiddle.net/ztQYJ/我修改了绑定日期选择器的方式,只在创建时绑定一次,而不是每次单击它们时都绑定,也许这样会更好地工作。 - Samuel R

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接