我的jQuery UI datepicker面临一个小问题。 问题是,我有我的页面和一些像这样的输入:
blabla | blabla | .date-picker | blabla
blabla2 | blabla2 | .date-picker | blabla2
blabla3 | blabla3 | .date-picker | blabla3
所以'blabla'只是一些文本,而'.date-picker'是一个输入,带有'date-picker'类。
在我的JavaScript代码中,我只有以下内容:
$(function() {
$('.date-picker').datepicker();
});
但是,例如,如果我点击“blabla3”行的输入,而不是更新正确的输入,它总是更新第一个......
我的输入具有所有相同的ID(我无法更改),但我正在使用输入的类作为我的选择器,所以它应该可以工作但不会。
答案 0 :(得分:6)
你好老帖子,但是那些仍然面临这个问题的人......
只需删除新输入的id
,datepicker始终会生成一个新ID,即输入没有。如果它有一个,则datepicker会保留它,这意味着第一个输入被克隆,最后一个也将被更新。
答案 1 :(得分:3)
你应该改变输入的id,否则它将不起作用,因为当你选择任何日期时,它会使用DP_jQuery_1347006322116.datepicker._selectDay('#same',8,2012, this);return false;
这个函数来选择Day,它会输入id作为输入。
因此,如果您有多个ID,它将选择第一个输入并在那里设置日期。
答案 2 :(得分:2)
我有一个类似的问题,我会使用javascript动态添加包含具有相同ID标签的日期字段的新DIV容器。在我的情况下解决的唯一方法是动态重写所有ID,然后销毁/创建datepicker功能:
var n=0;
$("[id*='blabla']").each(function(){
n++;
tempField = this.id.split("-");
this.id = tempField[0]+"-"+n;
});
// first remove datepicker functionality since renaming of id above then
// add datepicker to any field with "datepicker" as class
$("input.datepicker").datepicker("destroy").datepicker();
我修改了以上内容以适合您的用例(我认为)。希望这会有所帮助。
顺便说一句:我用连字符(“ - ”)分割的原因是因为每次动态创建带有datepicker字段的另一个DIV容器时我都可以调用此函数。它将按顺序系统地重命名所有ID,以便以后进行表单处理。