MVC3 - 当多个元素具有相同ID时的jQuery datepicker

时间:2011-11-07 22:02:34

标签: javascript asp.net-mvc jquery-ui datepicker updatemodel

我有一个奇怪的情况(不是我们所有人?)和datepickers,并希望得到一些建议。

我有一个包含位置列表的屏幕,对于每个位置,他们可以单击编辑并编辑该位置。编辑显示在编辑链接下方,他们可以一次编辑多个位置。这意味着在屏幕上多次呈现相同的视图,因此将存在具有相同ID的多个字段(编辑4个位置将导致4个“DateOpened”字段)。

因此,当我加载View时,javascript会将datepickers添加到需要它的任何字段中,如下所示:

$(document).ready(function () {
    var elements = $(".NeedsDatePicker > td > input");
    $(".NeedsDatePicker > td > input").datepicker();
    $(".NeedsDatePicker").removeClass("NeedsDatePicker");
});

工作正常,但是,正如您可能已经想到的那样,当我点击日历上的日期时,当多个编辑窗口打开时,它会填充第一个“DateOpened”字段。

有没有办法告诉datepicker在某个父级中使用WITHIN字段,就像一般的jQuery选择一样?

$("#DateOpened", "Location-134").doWhatever...

...或者有没有办法在不破坏MVC的UpdateModel()函数的情况下给字段提供不同的id?还是其他任何建议?

1 个答案:

答案 0 :(得分:1)

您绝对应该在HTML DOM中保持唯一ID。大多数(如果不是全部)DOM操作库/框架(包括jQuery)都内置了这个假设。

有关SO WRT的一些问题,以避免表格中的相同ID: