使用验证函数处理ComboBox选择,我可以获得当前所选项目的值,但该项目的索引始终是前一个选择的索引:
var combo = this.getField("combo");
var options = [
[ "Option a" , 4 ],
[ "Option b" , 8 ],
[ "Option c" , 15 ],
[ "Option d" , 16 ],
[ "Option e" , 23 ],
[ "Option f" , 42 ]
]
combo.setItems( options )
combo.setAction("Validate", "someFunc(event)")
function someFunc(e){
console.println(e.value) // Option c
console.println(combo.currentValueIndices) // 0
}我期望结果是:
// option c
// 2这里发生了什么事?
发布于 2017-08-28 23:00:34
将代码从函数中提取出来,并将其放入一个自定义KeyStroke脚本中,然后使用e.changeEx而不是e.value。

发布于 2017-08-29 01:44:31
在这种情况下,使用链接此...
combo.setAction("Keystroke", "console.println(event.changeEx);console.println(this.getField('combo').currentValueIndices"))发布于 2017-08-29 09:20:59
问题解决了。我改变了:
combo.setAction("Validate", "someFunc(event)")至:
combo.setAction("Format", "someFunc(event)")现在我得到了正确的currentValueIndices。
https://stackoverflow.com/questions/45911447
复制相似问题