【发布时间】:2010-06-21 09:10:25
【问题描述】:
我有一堆我以编程方式创建的 NumberTextBox。现在,我必须在按键上计算一些值,所以我为此调用了一个函数......看起来像这样:
...
<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”,当我访问字段的值/displayedValue 时,我会得到“123”。
如果我使用“onChange”,如何获取触发 onChange 事件的元素的 ID? (它不像 evt.target.id 这么简单,对吧?试过了,还是不行)
或者,我必须使用 2 的组合吗?比如,通过 onKeyPress 获取调用者的 id,然后通过 onChange 获取用户输入的更新值?
谢谢!
【问题讨论】:
标签: dojo onchange onkeypress