Я столкнулся с глубокими проблемами с нокаутом при работе в IE9 с режимом совместимости с IE8. Вот проблема:Проблема с нокаутом IE8
У меня есть массив динамически сгенерированных текстовых полей, и событие изменения связано с этими элементами. Когда событие изменения есть, в режиме совместимости IE8 мне нужно дважды нажать вкладку, чтобы отойти от элемента управления. Этого не происходит в Firefox, ни когда нет привязки к событию.
Я не уверен, является ли это проблема с моим событием, так что я отправляю код здесь:
<tbody data-bind="foreach: DailyItemList">
<tr>
<td>
<span data-bind="text:Day"></span>
</td>
<td><input id="Text2" data-bind="value: Required"/></td>
<td><input id="Text3" data-bind="value: Setup, event:{change: ValidateSetup}"/></td>
<td><input id="Text4" data-bind="value: Close, event:{change: ValidateClose}"/></td>
</tr>
</tbody>
Вот вид модели с функциями изменения:
var DailyItem = function (data) {
this.Day = ko.observable(data.DayOfWeek);
this.Required = ko.observable(data.Required);
this.Setup = ko.observable(data.SetupTime);
this.Close = ko.observable(data.CloseTime);
this.ValidateSetup = function() {
if (this.Setup() > 30) {
alert('Invalid SetupTime');
}
}
this.ValidateClose = function() {
if (this.Close() > 30) {
alert('Invalid SetupTime');
}
}
}
function ViewModel(items) {
this.DailyItemList = ko.observableArray([]);
records = $.map(items, function (data) { return new DailyItem(data) });
this.DailyItemList(records);
}
не делают событие изменения. make ValidateSetup вычисляет доступ к значению ввода. удалите событие: {измените, и вы хорошо пойдете. –
HI, спасибо за ваш ответ, но мне нужно сделать несколько вещей внутри функции - то, что я показал, является лишь примером. Мне нужно обновить несколько других наблюдаемых внутри функции. – devC
Вы все еще можете сделать это внутри вычисленного. Но если вы не хотите вычисленных, подпишитесь на лежащие в основе наблюдаемые и сделайте то, что вам нужно сделать. –