从 onChange 事件中获取小部件的旧值

Get the old value of a widget from onChange event?

本文关键字:小部 获取 onChange 事件      更新时间:2023-09-26
如何在

onChange事件发生之前获取小部件的先前值?我知道小部件上有一个 _lastValueReported 属性,但它不包含 onChange 事件之前的值。根据此文档,似乎像这样在我的小部件中以声明方式执行此操作应该有效,但它没有:

<script type="dojo/aspect" data-dojo-advice="before" data-dojo-event="onChange" data-dojo-args="value">
    console.log('old value: ' + value);
</script>

我有一个基于这个解决方案的解决方法,但我认为一定有更好的方法。

你需要

的是watch(),它会给你newValue和oldValue。

<script type="dojo/watch" data-dojo-prop="value" data-dojo-args="prop,oldValue,newValue">
    document.getElementById("statusContainer").innerHTML = "Old Value: " + oldValue + ", New Value: " + newValue;
</script>

我在这里更新了你的小提琴。希望对您有所帮助。

仅供参考,如果我仅使用键盘(选项卡以获得焦点)并更改值,您的其他解决方案将不起作用。