将Keith Wood Datepicker添加到Dynamic Knockout List

时间:2013-05-20 15:03:14

标签: jquery knockout.js datepicker selectlist

我正在尝试将Keith Wood日期选择器添加到Knockout动态列表中 我在这里创建了一个JS小提琴:http://jsfiddle.net/ELTfx/5/

我为每个创建的输入框创建了一个唯一的ID:

淘汰赛:

self.departureDateUniqueID=ko.observable("depDate"+ counter++);
self.departureDateUniqueIDHash = ko.computed(function () {
        return "'#" + self.departureDateUniqueID() + "'";
    });

HTML:

            <td><input data-bind="value: departureDate,attr: { 'id': departureDateUniqueID }" /></td>

每次在列表中创建新条目时,我都尝试将datepicker绑定到对象:

    // Operations
    self.addSeat = function() {
    var seat = new SeatReservation("", self.availableMeals[0]);
    self.seats.push(seat);
    alert (seat.departureDateUniqueIDHash());

    $(seat.departureDateUniqueIDHash()).datepick({
        autoSize: true, defaultDate: 0, selectDefaultDate: true,
        onSelect: function (dates) {
            var minDate = dates[0];
            seat.departureDate($.datepick.formatDate(minDate));
        }
    });
}
但是,它不起作用。 我收到了错误 未捕获错误:语法错误,无法识别的表达式:'#depDate0'

我猜JQuery尚未在它的DOM中获得它。

现在我已经使用Google搜索了各个帖子并推荐了On子句..但是我无法弄清楚如何在这里使用它。

任何提示都赞赏!

1 个答案:

答案 0 :(得分:1)

我在猜... 您在创建ID时遇到了不必要的'

self.departureDateUniqueIDHash = ko.computed(function () {
        return "#" + self.departureDateUniqueID() + "";
    });

参见 DEMO