ScriptUI - 如何通过更改事件侦听器获取 EditText 旧文本?
ScriptUI - How to get EditText old text with changing event listener?
如 ScriptUI reference 中所述,有两种方法可以在 EditText
上实现更改侦听器:
editText.onChanging = function() {
...
}
editText.addEventListener('changing', function(event) {
...
})
但是,在对 EditText.text
进行编辑后触发该功能,拒绝获得旧文本值的机会,因为后备选项是新值是不受欢迎的。我正在寻找这样的东西:
editText.onChanging = function(oldValue) {
var newValue = this.text
if (!isCorrect(newValue)) {
this.text = oldValue
}
}
editText 框有一个 onActivate callback,当元素获得焦点时触发。如果此时存储 editText 的当前文本值,如果新值不生效,它可以返回到其原始状态。
请注意,这里可能值得考虑用户体验——如果您输入了一个无效值,而该值刚刚恢复,您可能没有意识到它已经这样做了。对于用户来说,这可能非常令人困惑:看起来我输入了一个值,但没有任何反应。抛出错误(例如对话框)或禁用其他控件(例如如果参数不正确,“执行操作”按钮将变灰。
如 ScriptUI reference 中所述,有两种方法可以在 EditText
上实现更改侦听器:
editText.onChanging = function() {
...
}
editText.addEventListener('changing', function(event) {
...
})
但是,在对 EditText.text
进行编辑后触发该功能,拒绝获得旧文本值的机会,因为后备选项是新值是不受欢迎的。我正在寻找这样的东西:
editText.onChanging = function(oldValue) {
var newValue = this.text
if (!isCorrect(newValue)) {
this.text = oldValue
}
}
editText 框有一个 onActivate callback,当元素获得焦点时触发。如果此时存储 editText 的当前文本值,如果新值不生效,它可以返回到其原始状态。
请注意,这里可能值得考虑用户体验——如果您输入了一个无效值,而该值刚刚恢复,您可能没有意识到它已经这样做了。对于用户来说,这可能非常令人困惑:看起来我输入了一个值,但没有任何反应。抛出错误(例如对话框)或禁用其他控件(例如如果参数不正确,“执行操作”按钮将变灰。