如何强制 dijit/form/TextBox 立即更新绑定到它的变量 - 绑定无法按预期工作

How to force dijit/form/TextBox to update the variable bound to it immediately - binding does not work as expected

我有一个

<input id="myTextBox" data-dojo-type="dijit/form/TextBox" data-dojo-props="value: at(model, myValue)" />

当我尝试将值从 model.myValue 复制到另一个 input 时(例如通过

window.setInterval(
  function() { document.getElementById("theOtherInput").value = model.myValue; }, 1000); 

我注意到,myTextBox 的值与 model.myValue 不同步,直到 myTextBox<input> 失去焦点。 IE。 - theOtherInput 将不会更新,除非我离开输入字段 myTextBox

如何强制 dojo 在每次击键时将输入与绑定变量同步?我认为这应该是默认行为,或者至少应该不费吹灰之力就可以实现,但是我找不到合适的属性来做到这一点。有什么想法吗?

我的主要问题是,当我通过回车键提交表单时,model.myValue 仍然是输入 myTextBox 获得焦点之前的值。 (而且我不想使用 setInterval 进行破解 - 我只想让 dojo 完成将输入与模型同步的工作)

最接近的是将 intermediateChanges 属性 设置为 true 并附加一个 onChange 事件。像这样:

<input id="myTextBox" data-dojo-type="dijit/form/TextBox" 
       data-dojo-props="intermediateChanges: true"
       data-dojo-attach-event="onChange: _myOnChange"
       data-dojo-props="value: at(model, myValue)" />

现在,在您的小部件中,_myOnChange 函数将 运行 每次重要的击键或内容更改。

_myOnChange: function(newValue){
  console.log(newValue);
  document.getElementById("theOtherInput").value = newValue;
}