У меня есть набор 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». Короче говоря, значение (я также пробовал атрибут «displayValue»), которое я получаю в функции, не является последним.
Я попытался использовать «middleChanges: true», но в этом случае он не работает для текстового поля. Теперь я пошел дальше и использовал событие «onChange» вместо «onKeyPress». Я получаю правильные значения, но ... я не знаю, что вызвало событие onChange.
Вопросы:
Если я собираюсь использовать событие onKeyPress, как мне получить последнее значение? Это означает, что если я введу «123», я получу «123», когда получу доступ к значению поля / displayValue.
Если я использую "onChange", как мне получить идентификатор элемента, который вызвал событие onChange? (это не так просто, как evt.target.id, не так ли? Попробовал тот, и это не сработало)
Или я должен использовать комбинацию из 2? Например, получить идентификатор вызывающего абонента с помощью onKeyPress, а затем получить обновленное значение, введенное пользователем с помощью onChange?
Спасибо!