【问题标题】:Datetimepicker not calling/binding properly after removing dynamic input field删除动态输入字段后,日期时间选择器未正确调用/绑定
【发布时间】:2013-06-10 21:06:23
【问题描述】:

我正在使用以下版本的 jquery datetimepicker

JQuery v1.7.2
JQuery UI - v1.10.3
jQuery timepicker addon V1.3

在一个模块中,我通过单击 "+" 动态创建输入字段,并为动态创建的输入绑定 datetimepicker,并通过单击 删除该输入字段“-”

我的动态输入字段总是如下创建:

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。

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

【问题讨论】:

  • 尝试使用Live 方法代替on

标签: jquery jquery-ui jquery-plugins datepicker datetimepicker


【解决方案1】:

我刚刚在 jsfiddle 中尝试过,它成功了,这是链接:http://jsfiddle.net/juTRR/

如果您知道您的问题,请在 jsfiddle 中重现它,以便我们可以看到它是什么,因为我没有看到它。也许尝试使用$(document).ready 而不是$(window).load,这是我唯一改变的。或者,问题实际上出在您的添加和删除功能上,如果是这样,您应该将它们放在您的帖子中。

【讨论】:

  • 代码不工作!它应该如何工作.. 如您所见,如果我们在下次 id 增加时删除一些文本框.. 第一个文本框是 datefrom_1_1 第二个是 datefrom_1_2 如果我删除并添加 ID 是 datefrom_1_3 而不是 datefrom_1_2。我再次将 id 更改为 datefrom_1_2 所以它不起作用。
  • 我对其进行了修改,使其按您想要的方式工作,它仍然像往常一样工作。 jsfiddle.net/ZCNMs
  • 谢谢,但是当我使用时,我遇到了同样的问题。是不是 JQuery 版本的原因?
  • “面临同样的问题”是什么意思?你在谈论jsfiddle吗? jsfiddle 应该对每个人都一样,这就是我们使用它的原因。无论我删除或添加多少内容,当我单击输入时,日期时间选择器仍然会打开。左边也可以看到我用的jquery版本,和你的一样。
  • 我也在使用 chrome 并且它正在工作,我不明白为什么它在你的端不起作用,我不想过多地修改你的代码,但如果它不起作用你可以试试这个:jsfiddle.net/ztQYJ我修改了绑定日期选择器的方式,在创建时绑定一次,而不是每次点击它们,也许这样会更好。
【解决方案2】:

我认为问题在于“on”函数中的 jquery 上下文。在函数 jquery.on 中,您使用 $(this)。 $(this) 将引用您的主要选择器:$('body')。

你试过了吗:

$('input[id^="datepickerfrom"]').on('focus', function() {

Examples 表明您需要一个输入字段。所以我假设 $('input[id^="datepickerfrom"]') 是你的输入字段。

【讨论】:

  • 文件以相同的顺序给出 JQuery v1.7.2,JQuery UI - v1.10.3,jQuery timepicker addon V1.3,我添加了 CSS,但仍然是同样的问题。我没有添加 Smooth.Js,因为如果我包含它,其他 js 会显示错误。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-10
  • 1970-01-01
  • 1970-01-01
  • 2020-04-23
  • 1970-01-01
相关资源
最近更新 更多