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

标签 javascript dojo

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

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

我有一个基于 this solution 的解决方法在 this fiddle ,但我认为一定有更好的方法。

最佳答案

你需要的是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>

我已经更新了你的 fiddle here .希望对您有所帮助。

仅供引用,如果我只使用键盘(标签以获得焦点)并更改值,您的其他解决方案将不起作用。

关于javascript - 从 onChange 事件中获取小部件的旧值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28098114/

相关文章:

dojo - 如何在道场设置区域?

javascript - 检查 JavaScript 变量是错误的还是空数组或对象的最有效方法是什么?

javascript - 缓存变量: localStorage or a cookie?

javascript - 禁用特定下拉值上的按钮

javascript - 在中央 Pane 中对齐按钮和下拉按钮

javascript - Dojo 按 ID 查询默认为 getElementById

css - 我如何预测哪种类型的 CSS 选择器会起作用?

javascript - jQuery 函数无法正常工作

javascript - 在 JavaScript 中将 JSON 对象转换为逗号分隔值

javascript - 当与服务器的连接丢失时,保存在 html 页面字段中输入的数据