2012-08-12 52 views
4

我由于某种原因没有在IE8更新这个非常简单的观察到的元素淘汰赛观察到的元素不更新IE正常

<body> 
<form data-bind="submit: show"> 
<input type="text" data-bind="value: someText" /> 
</form> 
<script type="text/javascript"> 

    var ViewModel = function() { 
     var self = this; 
     self.someText = ko.observable('initial value'); 

     self.show = function() { 
      alert(self.someText()); 
      self.someText(''); 
     } 
    } 

    ko.applyBindings(new ViewModel()); 
</script> 
</body> 

因此,点击后进入时,应显示inputed到文本框中的值。一切都很好,在Mozilla,歌剧,铬。 IE浏览器没有看到任何更改,并始终以空字符串提醒。为什么?
Here you can run this piece of code

+1

我不完全理解比其他浏览器的IE浏览器的行为差异,但它的出现改变事件不会被触发_before_提交事件。 Knockout依靠这些事件来保持视图模型是最新的。你可能需要调整你的代码来解决这个问题。 – 2012-08-12 20:11:44

回答

9

对不起,我应该仔细地谷歌它。问题出现在不同的事件之后,应该更新可观察元素。对于IE修复很少像这样

<input type="text" data-bind="value: someText, valueUpdate: 'keydown'" /> 
+0

我几乎疯狂。正如我上面使用的代码一样工作了。可以找出为什么它不在这里后,即使通过代码... – frostymarvelous 2013-11-15 00:25:02