gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 01:34:54 25 4
gpt4 key购买 nike

我有一个

<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 不同步直到<input>myTextBox失去焦点。 IE。 -theOtherInput除非我离开输入字段myTextBox,否则不会更新.

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

对我来说主要的问题是,当我通过回车键提交表单时,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 函数将在每次有值(value)的击键或内容发生更改时运行。

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

关于javascript - 如何强制 dijit/form/TextBox 立即更新绑定(bind)到它的变量 - 绑定(bind)无法按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51118347/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com