我正在尝试将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子句..但是我无法弄清楚如何在这里使用它。
任何提示都赞赏!
答案 0 :(得分:1)
我在猜...
您在创建ID时遇到了不必要的'
self.departureDateUniqueIDHash = ko.computed(function () {
return "#" + self.departureDateUniqueID() + "";
});
参见 DEMO