如何在onChange事件发生之前获取窗口小部件的先前值?我知道小部件上有_lastValueReported
属性,但它不包含onChange事件之前的值。根据{{3}},似乎在我的小部件中以声明方式执行此操作应该可行,但它不会:
<script type="dojo/aspect" data-dojo-advice="before" data-dojo-event="onChange" data-dojo-args="value">
console.log('old value: ' + value);
</script>
根据this documentation中的this solution,我有一个解决方法,但我认为必须有更好的方法。
答案 0 :(得分:2)
你需要的是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>
我更新了你的小提琴here。希望它有所帮助。
仅供参考,如果我只使用键盘(标签获得焦点)并更改价值,那么您的其他解决方案将无法运作。