我可以通过编程方式触发knockout viewmodel更新吗?

问题描述:

我已经编写了一个表单,其中包含各种值绑定和一个淘汰赛视图模型。该表单由AJAX帖子提交(由窗体按钮上的点击绑定触发)。我注意到,当我在文本框中进行更改时,模型未正确更新,留下光标并直接单击提交按钮。我可以通过编程方式触发knockout viewmodel更新吗?

我知道值绑定的“afterkeydown”选项,但我不喜欢使用它,因为它也会触发我对每次按键敲击的验证。有没有办法在我的ajax提交函数中以编程方式强制模型更新?

+0

你把它扔在小提琴,所以我们可以看到你的代码。没有这个,很难说你做错了什么。 – Tyrsius

尝试使用提交绑定,而不是点击:

<form data-bind="submit: doSomething"> 
    ... form contents go here ... 
    <button type="submit">Submit</button> 
</div> 

<script type="text/javascript"> 
    var viewModel = { 
     doSomething : function(formElement) { 
      // ... now do something 
     } 
    }; 
</script> 

的文档页面上提交: http://knockoutjs.com/documentation/submit-binding.html