我有一堆我以编程方式创建的 NumberTextBoxes。现在,我必须在按键上计算一些值,所以我为此调用了一个函数......看起来像这样:
...
<head>
...
function setNumTextBox() {
...
var val = {
name: "mytextbox",
onKeyPress: keyPressFxn
}
new dijit.form.NumberTextBox(val, "mytextbox");
}
function keyPressFxn(evt) {
// do the processing here
}
...
现在,我的问题是这个。用户键入,例如,“12”。当用户输入“1”时,dijit.byId("mytextbox").attr("value") 为""。当用户键入“2”时,该值现在为“1”。简而言之,我在函数中获得的值(我也尝试过“displayedValue”属性)不是最新的。
我尝试使用“intermediateChanges:true”,但它不适用于这种情况下的文本框。现在,我继续使用“onChange”事件而不是“onKeyPress”。我得到了正确的值,但是......我不知道什么叫做 onChange 事件。
问题:
如果要使用“onKeyPress”事件,如何获取最新值?意思是,如果我输入“123”,当我访问该字段的值/显示值时,我会得到“123”。
如果我使用“onChange”,如何获取触发 onChange 事件的元素的 ID?(它不像 evt.target.id 那样简单,对吧?试过了,它没有用)
或者,我必须使用 2 的组合吗?比如,通过 onKeyPress 获取调用者的 id,然后获取用户通过 onChange 键入的更新值?
谢谢!