我在淘汰赛中声明了一个文本框,下拉列表。如果我使用像这样的jQuery动态更改文本框或下拉列表的值...
$('#IdNo').val(_IDNo);//for textbox
$('#IdNo').change();
$('#Subjects option').filter(function () { return $.trim($(this).val()) == parseInt(subjectbind); }).attr('selected', true);//for dropdown
$('#Subjects').change();
...然后change()
不会将值绑定到淘汰赛。更改的值确实出现在UI中,但未反映在视图模型中以进行进一步操作。
答案 0 :(得分:4)
如果你想确保在手动更新DOM时注意Knockout,你需要use the trigger
method这样:
$('#Subjects').trigger('change');
change
方法可用于为事件注册处理程序。
PS。如果您手动更新DOM,那么您应该评估您使用KnockoutJS的原因/方式......