プログラムで作成した 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」を使用しようとしましたが、この場合のテキスト ボックスでは機能しません。ここで、「onKeyPress」の代わりに「onChange」イベントを使用しました。私は正しい値を取得しますが... onChange イベントと呼ばれるものがわかりません。
質問:
「onKeyPress」イベントを使用する場合、最新の値を取得するにはどうすればよいですか? つまり、「123」と入力すると、フィールドの値/displayedValue にアクセスすると「123」が返されます。
「onChange」を使用する場合、onChange イベントを発生させた要素の ID を取得するにはどうすればよいですか? (それは evt.target.id ほど単純ではありませんよね? それを試してみましたが、うまくいきませんでした)
または、2 つを組み合わせて使用する必要がありますか? 同様に、onKeyPress を介して発信者の ID を取得し、onChange を介してユーザーが入力した更新された値を取得しますか?
ありがとう!